o
    Þ­jG  ã                   @   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__© úO/var/www/html/CropPilot/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   