U
    ‰d°  ã                   @   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                   @   sH   e Zd Zedœdd„Zedœdd„Zee dœdd	„Ze	dœd
d„Z
dS )ÚJWKSetCache)Úlifespanc                 C   s   d | _ || _d S ©N)Újwk_set_with_timestampr   )Úselfr   © r   ú5/tmp/pip-unpacked-wheel-cf9_iply/jwt/jwk_set_cache.pyÚ__init__   s    zJWKSetCache.__init__)Újwk_setc                 C   s   |d k	rt |ƒ| _nd | _d S r   )r   r	   )r
   r   r   r   r   Úput   s    zJWKSetCache.put)Úreturnc                 C   s    | j d ks|  ¡ rd S | j  ¡ S r   )r	   Ú
is_expiredZget_jwk_set©r
   r   r   r   Úget   s    zJWKSetCache.getc                 C   s,   | j d k	o*| jdko*t ¡ | j  ¡ | j kS )Néÿÿÿÿ)r	   r   ÚtimeÚ	monotonicZget_timestampr   r   r   r   r      s    
ÿÿýzJWKSetCache.is_expiredN)Ú__name__Ú
__module__Ú__qualname__Úintr   r   r   r   r   Úboolr   r   r   r   r   r      s   r   )r   Útypingr   Zapi_jwkr   r   r   r   r   r   r   Ú<module>   s   