o
    _iG                     @   s    d dl mZ G dd deZdS )    )OrderedDictc                       sn   e Zd Z fddZ fddZd fdd	Z fdd	Z fd
dZ fddZ fddZ	dd Z
  ZS )LRUCachec                    s   t    t | _|| _d S N)super__init__r   _ordermaxsize)selfr   	__class__ K/home/air/demo/back/venv/lib/python3.10/site-packages/google/auth/_cache.pyr      s   

zLRUCache.__init__c                    s   t    | j  d S r   )r   clearr   )r	   r
   r   r   r      s   
zLRUCache.clearNc                    s4   zt  |}| | |W S  ty   | Y S w r   )r   __getitem___updateKeyError)r	   keydefaultvaluer
   r   r   get   s   
zLRUCache.getc                    s   t  |}| | |S r   )r   r   r   )r	   r   r   r
   r   r   r   $   s   
zLRUCache.__getitem__c                    sV   | j }|dkr	d S || vrt| |kr|   t| |kst || | | d S )Nr   )r   lenpopitemr   __setitem__r   )r	   r   r   r   r
   r   r   r   )   s   zLRUCache.__setitem__c                    s   t  | | j|= d S r   )r   __delitem__r   r	   r   r
   r   r   r   3   s   zLRUCache.__delitem__c                    s"   | j jdd\}}|t |fS )z9Remove and return the least recently used key-value pair.F)last)r   r   r   pop)r	   r   _r
   r   r   r   7   s   zLRUCache.popitemc                 C   s2   z	| j | W d S  ty   d | j |< Y d S w r   )r   move_to_endr   r   r   r   r   r   <   s
   zLRUCache._updater   )__name__
__module____qualname__r   r   r   r   r   r   r   r   __classcell__r   r   r
   r   r      s    
r   N)collectionsr   dictr   r   r   r   r   <module>   s   