
    q`                     .    d dl Z ddlmZ  G d de      Zy)    N   )Cachec                   Z    e Zd ZdZddZej                  fdZej                  fdZd Zy)	FIFOCachez/First In First Out (FIFO) cache implementation.Nc                 d    t        j                  | ||       t        j                         | _        y N)r   __init__collectionsOrderedDict_FIFOCache__order)selfmaxsize	getsizeofs      /lib/python3.12/site-packages/cachetools/fifo.pyr	   zFIFOCache.__init__	   s"    tWi0"..0    c                      || ||       	 | j                   j                  |       y # t        $ r d | j                   |<   Y y w xY wr   )r   move_to_endKeyError)r   keyvaluecache_setitems       r   __setitem__zFIFOCache.__setitem__   sB    dC'	%LL$$S) 	% $DLL	%s   ( AAc                 0     || |       | j                   |= y r   )r   )r   r   cache_delitems      r   __delitem__zFIFOCache.__delitem__   s    dC LLr   c                     	 t        t        | j                              }|| 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   s^    	(tDLL)*C #''  	J=4:+>+>>?TI	Js	   3 ,Ar   )	r"   
__module____qualname____doc__r	   r   r   r   r#    r   r   r   r      s/    91 5:4E4E % .3->-> (r   r   )r
   cacher   r   r'   r   r   <module>r)      s     ( (r   