U
    Ú²g¿  ã                   @   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                   @   sL   e Zd Zeddœdd„Zeddœdd„Zee dœd	d
„Ze	dœdd„Z
dS )ÚJWKSetCacheN)ÚlifespanÚreturnc                 C   s   d | _ || _d S ©N)Újwk_set_with_timestampr   )Úselfr   © r   ú5/tmp/pip-unpacked-wheel-ecrjo5d0/jwt/jwk_set_cache.pyÚ__init__   s    zJWKSetCache.__init__)Újwk_setr   c                 C   s   |d k	rt |ƒ| _nd | _d S r	   )r   r
   )r   r   r   r   r   Úput   s    zJWKSetCache.put)r   c                 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_expired)Ú__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   