
                          :    S SK Jr  S SKrSSKJr   " S S\5      rg)    )absolute_importN   )Cachec                       \ rS rSrSrSS jr\R                  4S jr\R                  4S jr\R                  4S jr	S r
\" \R                  S	5      (       a  S
 rSrgS rSrg)LRUCache   z/Least Recently Used (LRU) cache implementation.Nc                 f    [         R                  " XU5        [        R                  " 5       U l        g N)r   __init__collectionsOrderedDict_LRUCache__order)selfmaxsize	getsizeofs      !lib/third_party/cachetools/lru.pyr   LRUCache.__init__   s     	NN4),**,DL    c                 8    U" X5      nU R                  U5        U$ r
   _LRUCache__update)r   keycache_getitemvalues       r   __getitem__LRUCache.__getitem__   s    $$EMM#Lr   c                 8    U" XU5        U R                  U5        g r
   r   )r   r   r   cache_setitems       r   __setitem__LRUCache.__setitem__   s    $U#MM#r   c                 .    U" X5        U R                   U	 g r
   )r   )r   r   cache_delitems      r   __delitem__LRUCache.__delitem__   s    $Sr   c                      [        [        U R                  5      5      nXR                  U5      4$ ! [         a#    [        SU R                  R                  -  5      ef = f)z>Remove and return the `(key, value)` pair least recently used.z%s is empty)nextiterr   popStopIterationKeyError	__class____name__r   r   s     r   popitemLRUCache.popitem   sX    "dll#$c 88C=!!  >]T^^%<%<<==>s	   2 -Amove_to_endc                 z     U R                   R                  U5        g ! [         a    S U R                   U'    g f = fr
   )r   r0   r*   r-   s     r   __updateLRUCache.__update'   s6    !  % ! S!s    ::c                      U R                   R                  U5      U R                   U'   g ! [         a    S U R                   U'    g f = fr
   )r   r(   r*   r-   s     r   r2   r3   .   sA    ! LL,,S1S ! S!s   (+ AA)__orderr
   )r,   
__module____qualname____firstlineno____doc__r   r   r   r   r#   r.   hasattrr   r   r   __static_attributes__ r   r   r   r      s^    7- ,1+<+< 
 382C2C  ,1+<+< " [$$m44!!r   r   )
__future__r   r   cacher   r   r<   r   r   <module>r?      s    &  *!u *!r   