
    q`                     6    d dl Z ddlmZ  G d de          ZdS )    N   )Cachec                   b    e Zd ZdZd	dZej        fdZej        fdZej        fdZd Z	d Z
dS )
LRUCachez/Least Recently Used (LRU) cache implementation.Nc                 b    t          j        | ||           t          j                    | _        d S N)r   __init__collectionsOrderedDict_LRUCache__order)selfmaxsize	getsizeofs      .lib/python3.11/site-packages/cachetools/lru.pyr	   zLRUCache.__init__	   s*    tWi000".00    c                 P     || |          }|| v r|                      |           |S r   _LRUCache__update)r   keycache_getitemvalues       r   __getitem__zLRUCache.__getitem__   s3    dC(($;;MM#r   c                 J     || ||           |                      |           d S r   r   )r   r   r   cache_setitems       r   __setitem__zLRUCache.__setitem__   s.    dC'''cr   c                 .     || |           | j         |= d S r   )r   )r   r   cache_delitems      r   __delitem__zLRUCache.__delitem__   s$    dC   Lr   c                     	 t          t          | j                            }||                     |          fS # t          $ r& t          dt          |           j        z            dw xY w)z>Remove and return the `(key, value)` pair least recently used.z%s is emptyN)nextiterr   popStopIterationKeyErrortype__name__r   r   s     r   popitemzLRUCache.popitem   st    	(tDL))**C #''  	J 	J 	J=4::+>>??TI	Js	   !: 0A*c                 r    	 | j                             |           d S # t          $ r d | j         |<   Y d S w xY wr   )r   move_to_endr$   r'   s     r   __updatezLRUCache.__update$   sS    	%L$$S))))) 	% 	% 	% $DL	%s    66r   )r&   
__module____qualname____doc__r	   r   r   r   r   r(   r    r   r   r   r      s        991 1 1 1 .3->     5:4E     .3->    ( ( (% % % % %r   r   )r
   cacher   r   r/   r   r   <module>r1      sW             "% "% "% "% "%u "% "% "% "% "%r   