
    q`                     6    d dl Z ddlmZ  G d de          ZdS )    N   )Cachec                   H    e Zd ZdZddZej        fdZej        fdZd ZdS )	FIFOCachez/First In First Out (FIFO) cache implementation.Nc                 b    t          j        | ||           t          j                    | _        d S N)r   __init__collectionsOrderedDict_FIFOCache__order)selfmaxsize	getsizeofs      /lib/python3.11/site-packages/cachetools/fifo.pyr	   zFIFOCache.__init__	   s*    tWi000".00    c                      || ||           	 | j                             |           d S # t          $ r d | j         |<   Y d S w xY wr   )r   move_to_endKeyError)r   keyvaluecache_setitems       r   __setitem__zFIFOCache.__setitem__   sg    dC'''	%L$$S))))) 	% 	% 	% $DL	%s   + AAc                 .     || |           | j         |= d S r   )r   )r   r   cache_delitems      r   __delitem__zFIFOCache.__delitem__   s$    dC   Lr   c                     	 t          t          | j                            }||                     |          fS # t          $ r& t          dt          |           j        z            dw xY w)z9Remove and return the `(key, value)` pair first inserted.z%s is emptyN)nextiterr   popStopIterationr   type__name__)r   r   s     r   popitemzFIFOCache.popitem   st    	(tDL))**C #''  	J 	J 	J=4::+>>??TI	Js	   !: 0A*r   )	r"   
__module____qualname____doc__r	   r   r   r   r#    r   r   r   r      su        991 1 1 1 5:4E % % % % .3->    ( ( ( ( (r   r   )r
   cacher   r   r'   r   r   <module>r)      sW             ( ( ( ( ( ( ( ( ( (r   