
    LKi4                     l    S SK Jr  S SKJrJrJrJrJr  \" S5      r\" S5      r	 " S S\\\	4   5      r
g)    )OrderedDict)AnyCallableGenericOptionalTypeVarKVc                   p    \ rS rSrSrSS\S\\\\	/\
4      4S jjrS\S\\	   4S	 jrS\S
\	SS4S jrSrg)LRUCache	   zA simple LRU cache implementation, based on the OrderedDict class, which allows
for a callback to be invoked when an item is evicted from the cache.Ncapacitycallbackc                 :    Xl         [        5       U l        X l        g N)r   r   cacher   )selfr   r   s      Z/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/chromadb/utils/lru_cache.py__init__LRUCache.__init__   s     (3
     keyreturnc                 x    XR                   ;  a  g U R                   R                  U5      nX R                   U'   U$ r   )r   pop)r   r   values      r   getLRUCache.get   s1    jj 

s#

3r   r   c                 6   XR                   ;   a  U R                   R                  U5        O`[        U R                   5      U R                  :X  a=  U R                   R	                  SS9u  p4U R
                  (       a  U R                  X45        X R                   U'   g )NF)last)r   r   lenr   popitemr   )r   r   r   evicted_keyevicted_values        r   setLRUCache.set   sh    **JJNN3_-)-);););)G&K}}k9

3r   )r   r   r   r   )__name__
__module____qualname____firstlineno____doc__intr   r   r	   r
   r   r   r   r%   __static_attributes__ r   r   r   r   	   s^    L! !1a&#+9N0O !
q Xa[  q    t  r   r   N)collectionsr   typingr   r   r   r   r   r	   r
   r   r.   r   r   <module>r1      s6    # < < CLCL wq!t}  r   