o
    Bi                     @  s2   d dl mZ d dlZd dlmZ G dd dZdS )    )annotationsN)Anyc                   @  s,   e Zd ZddddZdddZdddZdS )TTLCache   ttl_sintmax_sizereturnNonec                 C  s   || _ || _i | _d S N)r   r   _d)selfr   r    r   5/var/www/www-root/data/www/77.83.87.30/utils/cache.py__init__   s   
zTTLCache.__init__kstr
Any | Nonec                 C  sD   | j |}|s
d S |\}}t | | jkr | j |d  d S |S r   )r   gettimer   pop)r   r   vtsvalr   r   r   r      s   zTTLCache.getr   r   c                   sN   t  j jkrt j  fddd} j|d  t |f j|< d S )Nc                   s    j |  d S )Nr   )r   )xr   r   r   <lambda>   s    zTTLCache.set.<locals>.<lambda>)key)lenr   r   minkeysr   r   )r   r   r   oldestr   r   r   set   s   zTTLCache.setN)r   )r   r   r   r   r	   r
   )r   r   r	   r   )r   r   r   r   r	   r
   )__name__
__module____qualname__r   r   r"   r   r   r   r   r      s    

r   )
__future__r   r   typingr   r   r   r   r   r   <module>   s    