
    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 )
MRUCachez.Most Recently Used (MRU) cache implementation.Nc                 b    t          j        | ||           t          j                    | _        d S N)r   __init__collectionsOrderedDict_MRUCache__order)selfmaxsize	getsizeofs      .lib/python3.11/site-packages/cachetools/mru.pyr   zMRUCache.__init__	   s*    tWi000".00    c                 P     || |          }|| v r|                      |           |S r   _MRUCache__update)r   keycache_getitemvalues       r   __getitem__zMRUCache.__getitem__   s3    dC(($;;MM#r   c                 J     || ||           |                      |           d S r   r   )r   r   r   cache_setitems       r   __setitem__zMRUCache.__setitem__   s.    dC'''cr   c                 .     || |           | j         |= d S r   )r   )r   r   cache_delitems      r   __delitem__zMRUCache.__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 most recently used.z%s is emptyN)nextiterr   popStopIterationKeyErrortype__name__r   r   s     r   popitemzMRUCache.popitem   st    	(tDL))**C #''  	J 	J 	J=4::+>>??TI	Js	   !: 0A*c                 v    	 | j                             |d           d S # t          $ r d | j         |<   Y d S w xY w)NF)last)r   move_to_endr#   r&   s     r   __updatezMRUCache.__update$   sX    	%L$$Su$55555 	% 	% 	% $DL	%s     88r   )r%   
__module____qualname____doc__r   r   r   r   r   r'   r    r   r   r   r      s        881 1 1 1 .3->     5:4E     .3->    ( ( (% % % % %r   r   )r	   cachetools.cacher   r   r/   r   r   <module>r1      sW        " " " " " ""% "% "% "% "%u "% "% "% "% "%r   