o
    sÇh¿  ã                   @   s6   d dl Z d dlmZ ddlmZmZ G dd„ dƒZdS )é    N)ÚOptionalé   )ÚPyJWKSetÚPyJWTSetWithTimestampc                   @   sP   e Zd Zdeddfdd„Zdeddfdd„Zdee fd	d
„Zde	fdd„Z
dS )ÚJWKSetCacheÚlifespanÚreturnNc                 C   s   d | _ || _d S ©N)Újwk_set_with_timestampr   )Úselfr   © r   úe/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/jwt/jwk_set_cache.pyÚ__init__   s   
zJWKSetCache.__init__Újwk_setc                 C   s    |d urt |ƒ| _d S d | _d S r	   )r   r
   )r   r   r   r   r   Úput   s   
zJWKSetCache.putc                 C   s    | j d u s	|  ¡ rd S | j  ¡ S r	   )r
   Ú
is_expiredÚget_jwk_set©r   r   r   r   Úget   s   
zJWKSetCache.getc                 C   s,   | j d uo| jdkot ¡ | j  ¡ | j kS )Néÿÿÿÿ)r
   r   ÚtimeÚ	monotonicÚget_timestampr   r   r   r   r      s   
ÿÿýzJWKSetCache.is_expired)Ú__name__Ú
__module__Ú__qualname__Úintr   r   r   r   r   Úboolr   r   r   r   r   r      s
    r   )r   Útypingr   Úapi_jwkr   r   r   r   r   r   r   Ú<module>   s    