+
    P(iBZ                        R t RtRt^ R	It^ R	It^ R	It^ R	It^ R	It^ R	It^R
I	H
t
  ! R R4      t ! R R]P                  P                  4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t]P,                  ! R. RO4      t]
P0                  R	R	R3R lt]
P4                  R	R	R3R ltR	# )z0Extensible memoizing collections and decorators.Cache	FIFOCacheLFUCacheLRUCacheRRCache	TLRUCacheTTLCachez7.0.5N)keysc                   @   a  ] tR t^t o RtRtR tR tR tR t	Rt
V tR# )_DefaultSizezAA minimal "fake" dict that returns a constant size 1 for any key.c                    ^#     self_keys   &&Y/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/cachetools/__init__.py__getitem___DefaultSize.__getitem__#           c                    R # Nr   )r   r   _values   &&&r   __setitem___DefaultSize.__setitem__&       r   c                    ^# r   r   r   s   &&r   pop_DefaultSize.pop)   r   r   c                    R # r   r   r   s   &r   clear_DefaultSize.clear,   r   r   r   N)__name__
__module____qualname____firstlineno____doc__	__slots__r   r   r   r#   __static_attributes____classdictcell____classdict__s   @r   r   r      s&     KI r   r   c                      a  ] tR t^0t o Rt]! 4       t]! 4       tRR lt	R t
R tR tR tR tR	 tR
 tR tRR lt]3R ltRR ltR t]R 4       t]R 4       t]R 4       tRtV tR# )r   z?Mutable mapping to serve as a simple cache or cache base class.Nc                    V'       d   W n         V P                   \        P                   Jd   \        4       V n        \        4       V n        ^ V n        Wn        R#     N)	getsizeofr   dict_Cache__size_Cache__data_Cache__currsize_Cache__maxsizer   maxsizer3   s   &&&r   __init__Cache.__init__7   s8    &N>>0&DKf r   c                    \        V 4      P                  : R \        V P                  4      : RV P                  : RV P
                  : R2# )(z
, maxsize=z, currsize=))typer%   reprr6   r8   r7   r"   s   &r   __repr__Cache.__repr__@   s3    JNNOO	
 	
r   c                n     V P                   V,          #   \         d    T P                  T4      u # i ; ir   )r6   KeyError__missing__r   keys   &&r   r   Cache.__getitem__H   s6    	);;s## 	)##C((	)s    44c                   V P                   pV P                  V4      pWC8  d   \        R 4      hWP                  9  g   V P                  V,          V8  d+   V P
                  V,           V8  d   V P                  4        K*  WP                  9   d   W@P                  V,          ,
          pMTpW P                  V&   W@P                  V&   V ;P
                  V,          un        R# )zvalue too largeN)r8   r3   
ValueErrorr6   r5   r7   popitem)r   rH   valuer:   sizediffsizes   &&&   r   r   Cache.__setitem__N   s    ..~~e$>.//kk!T[[%5%<//D(72++kk#..HH CC8#r   c                    V P                   P                  V4      pV P                  V V ;P                  V,          un        R # r   )r5   r   r6   r7   )r   rH   rN   s   && r   __delitem__Cache.__delitem__^   s.    {{s#KK4r   c                    WP                   9   # r   )r6   rG   s   &&r   __contains__Cache.__contains__c   s    kk!!r   c                    \        V4      hr   )rE   rG   s   &&r   rF   Cache.__missing__f   s    smr   c                ,    \        V P                  4      # r   )iterr6   r"   s   &r   __iter__Cache.__iter__i   s    DKK  r   c                ,    \        V P                  4      # r   )lenr6   r"   s   &r   __len__Cache.__len__l   s    4;;r   c                "    W9   d	   W,          # V# r   r   )r   rH   defaults   &&&r   get	Cache.getu   s    ;9Nr   c                b    W9   d   W,          pW V# W P                   J d   \        V4      hTpV# r   )_Cache__markerrE   r   rH   rb   rM   s   &&& r   r   	Cache.pop{   s:    ;IE	
 	 %3-Er   c                2    W9   d   W,          pV# T;W&   pV# r   r   rg   s   &&& r   
setdefaultCache.setdefault   s(    ;IE  !('DIr   c                |    V P                   P                  4        V P                  P                  4        ^ V n        R# r1   )r6   r#   r5   r7   r"   s   &r   r#   Cache.clear   s)    r   c                    V P                   # )zThe maximum size of the cache.)r8   r"   s   &r   r:   Cache.maxsize   s     ~~r   c                    V P                   # )zThe current size of the cache.)r7   r"   s   &r   currsizeCache.currsize   s     r   c                    ^# )z+Return the size of a cache element's value.r   )rM   s   &r   r3   Cache.getsizeof   s     r   )
__currsize__data	__maxsize__sizer3   r   )r%   r&   r'   r(   r)   objectrf   r   r5   r;   rB   r   r   rR   rU   rF   r[   r_   rc   r   rj   r#   propertyr:   rq   staticmethodr3   r+   r,   r-   s   @r   r   r   0   s     IxH^F!
)$  
"!   ( 
      r   c                   z   a  ] tR t^t o RtR	R lt]P                  3R lt]P                  3R ltR t	R t
RtV tR# )
r   z/First In First Out (FIFO) cache implementation.Nc                f    \         P                  WV4       \        P                  ! 4       V n        R # r   )r   r;   collectionsOrderedDict_FIFOCache__orderr9   s   &&&r   r;   FIFOCache.__init__        ti0"..0r   c                    V! WV4       WP                   9   d   V P                   P                  V4       R # R V P                   V&   R # r   )r   move_to_endr   rH   rM   cache_setitems   &&&&r   r   FIFOCache.__setitem__   s6    d',,LL$$S) $DLLr   c                0    V! W4       V P                   V R # r   )r   r   rH   cache_delitems   &&&r   rR   FIFOCache.__delitem__       d LLr   c                     \        \        V P                  4      4      pWP                  V4      3#   \         d(    \        R\        T 4      P                  ,          4      Rhi ; i)z9Remove and return the `(key, value)` pair first inserted.%s is emptyN)nextrZ   r   r   StopIterationrE   r@   r%   rG   s   & r   rL   FIFOCache.popitem   \    	(tDLL)*C #''  	J=4:+>+>>?TI	J	   2 2A$c                d    \         P                  V 4       V P                  P                  4        R # r   )r   r#   r   r"   s   &r   r#   FIFOCache.clear       Dr   __orderr   )r%   r&   r'   r(   r)   r;   r   r   rR   rL   r#   r+   r,   r-   s   @r   r   r      s<     91 5:4E4E % .3->-> ( r   c                      a  ] tR t^t o Rt ! R R4      tRR lt]P                  3R lt]P                  3R lt	]P                  3R lt
R	 tR
 tR tRtV tR# )r   z1Least Frequently Used (LFU) cache implementation.c                   0   a  ] tR t^t o RtR tR tRtV tR# )LFUCache._Linkc                0    Wn         \        4       V n        R # r   )countsetr	   )r   r   s   &&r   r;   LFUCache._Link.__init__   s    JDIr   c                N    V P                   pV P                  pWn         W!n        R # r   r   prevr   r   r   s   &  r   unlinkLFUCache._Link.unlink       99D99DIIr   )r   r	   N)r   r	   r   r   )	r%   r&   r'   r(   r*   r;   r   r+   r,   r-   s   @r   _Linkr      s     5			 	r   r   Nc                    \         P                  WV4       \        P                  ^ 4      ;V n        pV;Vn        Vn        / V n        R# r1   )r   r;   r   r   _LFUCache__rootr   r   _LFUCache__links)r   r:   r3   roots   &&& r   r;   LFUCache.__init__   s:    ti0%^^A..d $$	DIr   c                D    V! W4      pW9   d   V P                  V4       V# r   )_LFUCache__touchr   rH   cache_getitemrM   s   &&& r   r   LFUCache.__getitem__   "    d(;LLr   c                   V! WV4       WP                   9   d   V P                  V4       R # V P                  pVP                  pVP                  ^8w  dE   \
        P                  ^4      pVP                  Vn        V;Vn        VP                  n        WEn        VP                  P                  V4       WPP                   V&   R # r   )
r   r   r   r   r   r   r   r   r	   add)r   rH   rM   r   r   links   &&&&  r   r   LFUCache.__setitem__   s    d',,LL{{yy::?>>!$D		DI)--DI		I		c Sr   c                    V! W4       V P                   P                  V4      pVP                  P                  V4       VP                  '       g   VP	                  4        R # R # r   )r   r   r	   remover   r   rH   r   r   s   &&& r   rR   LFUCache.__delitem__   sG    d ||$		yyyKKM r   c                    V P                   pVP                  pW!J d'   \        R\        V 4      P                  ,          4      Rh\        \        VP                  4      4      pW0P                  V4      3# )z@Remove and return the `(key, value)` pair least frequently used.r   N)r   r   rE   r@   r%   rZ   r	   r   )r   r   currrH   s   &   r   rL   LFUCache.popitem   sX    {{yy<=4:+>+>>?TI4		?#XXc]##r   c                    \         P                  V 4       V P                  pV;Vn        Vn        V P
                  P                  4        R # r   )r   r#   r   r   r   r   r   r   s   & r   r#   LFUCache.clear  s5    D{{ $$	DIr   c                h   V P                   V,          pVP                  pVP                  VP                  ^,           8w  d   \        VP                  4      ^8X  d   V;P                  ^,          un        R# \
        P                  VP                  ^,           4      pVP                  Vn        V;Vn        VP                  n        W#n        VP                  P                  V4       VP                  P                  V4       VP                  '       g   VP                  4        W0P                   V&   R# )zIncrement use countN)r   r   r   r^   r	   r   r   r   r   r   r   )r   rH   r   r   s   &&  r   __touchLFUCache.__touch  s    ||C yy::a'499~"

a
>>$**q.1D		DI)--DI		I		c		yyyKKM Sr   )__links__rootr   )r%   r&   r'   r(   r)   r   r;   r   r   r   rR   rL   r#   r   r+   r,   r-   s   @r   r   r      s[     ;  .3->->  5:4E4E ! .3->-> $! !r   c                      a  ] tR tRt o RtRR lt]P                  3R lt]P                  3R lt]P                  3R lt	R t
R	 tR
 tRtV tR# )r   i  z/Least Recently Used (LRU) cache implementation.Nc                f    \         P                  WV4       \        P                  ! 4       V n        R # r   )r   r;   r~   r   _LRUCache__orderr9   s   &&&r   r;   LRUCache.__init__  r   r   c                D    V! W4      pW9   d   V P                  V4       V# r   _LRUCache__touchr   s   &&& r   r   LRUCache.__getitem__"  r   r   c                :    V! WV4       V P                  V4       R # r   r   r   s   &&&&r   r   LRUCache.__setitem__(  s    d'Sr   c                0    V! W4       V P                   V R # r   )r   r   s   &&&r   rR   LRUCache.__delitem__,  r   r   c                     \        \        V P                  4      4      pWP                  V4      3#   \         d(    \        R\        T 4      P                  ,          4      Rhi ; i)z>Remove and return the `(key, value)` pair least recently used.r   N)r   rZ   r   r   r   rE   r@   r%   rG   s   & r   rL   LRUCache.popitem0  r   r   c                d    \         P                  V 4       V P                  P                  4        R # r   )r   r#   r   r"   s   &r   r#   LRUCache.clear9  r   r   c                     V P                   P                  V4       R#   \         d    RT P                   T&    R# i ; i)zMark as recently usedN)r   r   rE   rG   s   &&r   r   LRUCache.__touch=  s6    	%LL$$S) 	% $DLL	%s    ==r   r   )r%   r&   r'   r(   r)   r;   r   r   r   rR   rL   r#   r   r+   r,   r-   s   @r   r   r     sQ     91 .3->->  5:4E4E  .3->-> (% %r   c                      a  ] tR tRt o Rt]P                  R3R lt]R 4       t]	P                  3R lt
]	P                  3R ltR tR	 tR
tV tR# )r   iE  z-Random Replacement (RR) cache implementation.Nc                Z    \         P                  WV4       W n        / V n        . V n        R # r   )r   r;   _RRCache__choice_RRCache__index_RRCache__keys)r   r:   choicer3   s   &&&&r   r;   RRCache.__init__H  s#    ti0r   c                    V P                   # )z(The `choice` function used by the cache.)r   r"   s   &r   r   RRCache.choiceN  s     }}r   c                    V! WV4       WP                   9  d@   \        V P                  4      V P                   V&   V P                  P                  V4       R # R # r   )r   r^   r   appendr   s   &&&&r   r   RRCache.__setitem__S  sD    d'll" #DKK 0DLLKKs# #r   c                    V! W4       V P                   P                  V4      pV\        V P                  4      ^,
          8w  d0   V P                  R,          pW@P                  V&   W0P                   V&   V P                  P                  4        R# )r   N)r   r   r^   r   )r   rH   r   indexlasts   &&&  r   rR   RRCache.__delitem__Y  sg    d   %C$q((;;r?D!%KK!&LLr   c                     V P                  V P                  4      pWP                  V4      3#   \         d(    \	        R\        T 4      P                  ,          4      Rhi ; i)z/Remove and return a random `(key, value)` pair.r   N)r   r   r   
IndexErrorrE   r@   r%   rG   s   & r   rL   RRCache.popitemb  s[    	(--,C #''  	J=4:+>+>>?TI	Js	   / 2A!c                ~    \         P                  V 4       V P                  P                  4        V P                  R  R# :NNNN)r   r#   r   r   r"   s   &r   r#   RRCache.cleark  s)    DKKNr   )__choice__index__keys)r%   r&   r'   r(   r)   randomr   r;   rz   r   r   rR   rL   r#   r+   r,   r-   s   @r   r   r   E  sY     7'-}}    5:4E4E $ .3->-> ( r   c                      a a ] tR tRt oRt ! R R4      t]P                  R3R lt]	P                  3R lt
]	P                  3R lt]V 3R	 l4       t]R
 4       tR tR tR tR tRtVtV ;t# )_TimedCacheiq  z0Base class for time aware cache implementations.c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
_TimedCache._Timerit  c                     Wn         ^ V n        R# r1   )_Timer__timer_Timer__nesting)r   timers   &&r   r;   _TimedCache._Timer.__init__u  s     LDNr   c                \    V P                   ^ 8X  d   V P                  4       # V P                  # r2   r   r   _Timer__timer"   s   &r   __call___TimedCache._Timer.__call__y  s$    ~~"||~%{{"r   c                    V P                   ^ 8X  d   V P                  4       ;V n        pMV P                  pV ;P                   ^,          un         V# r   r   )r   times   & r   	__enter___TimedCache._Timer.__enter__  s<    ~~"%)\\^3d{{NNaNKr   c                8    V ;P                   ^,          un         R# )r   N)r   )r   excs   &*r   __exit___TimedCache._Timer.__exit__  s    NNaNr   c                <    \         P                  V P                  33# r   )r   _Timerr   r"   s   &r   
__reduce___TimedCache._Timer.__reduce__  s    %%66r   c                .    \        V P                  V4      # r   )getattrr   )r   names   &&r   __getattr___TimedCache._Timer.__getattr__  s    4<<..r   )	__nesting__time__timerN)r%   r&   r'   r(   r;   r   r  r  r  r  r+   r,   r-   s   @r   r  r   t  s(     		#		 	7	/ 	/r   r  Nc                f    \         P                  WV4       \        P                  V4      V n        R # r   )r   r;   r   r  _TimedCache__timer)r   r:   r   r3   s   &&&&r   r;   _TimedCache.__init__  s"    ti0"))%0r   c                    V P                   ;_uu_ 4       pV P                  V4       V! V 4      uuR R R 4       #   + '       g   i     R # ; ir   r  expire)r   
cache_reprr  s   && r   rB   _TimedCache.__repr__  s-    \\\TKKd# \\\	   9A
	c                    V P                   ;_uu_ 4       pV P                  V4       V! V 4      uuR R R 4       #   + '       g   i     R # ; ir   r  )r   	cache_lenr  s   && r   r_   _TimedCache.__len__  s,    \\\TKKT? \\\r  c                   < V P                   ;_uu_ 4       pV P                  V4       \        SV `  uuR R R 4       #   + '       g   i     R # ; ir   )r  r  superrq   )r   r  	__class__s   & r   rq   _TimedCache.currsize  s.    \\\TKK7# \\\s	   <A	c                    V P                   # )z%The timer function used by the cache.)r  r"   s   &r   r   _TimedCache.timer  s     ||r   c                    V P                   ;_uu_ 4        \        P                  ! V .VO5/ VB uuR R R 4       #   + '       g   i     R # ; ir   )r  r   rc   r   argskwargss   &*,r   rc   _TimedCache.get  -    \\\99T3D3F3 \\\	   :A	c                    V P                   ;_uu_ 4        \        P                  ! V .VO5/ VB uuR R R 4       #   + '       g   i     R # ; ir   )r  r   r   r)  s   &*,r   r   _TimedCache.pop  r-  r.  c                    V P                   ;_uu_ 4        \        P                  ! V .VO5/ VB uuR R R 4       #   + '       g   i     R # ; ir   )r  r   rj   r)  s   &*,r   rj   _TimedCache.setdefault  s/    \\\##D:4:6: \\\r.  c                0    \         P                  V 4       R # r   )r   r#   r"   s   &r   r#   _TimedCache.clear  s     	Dr   )r  )r%   r&   r'   r(   r)   r  r  	monotonicr;   r   rB   r_   rz   rq   r   rc   r   rj   r#   r+   r,   __classcell__)r$  r.   s   @@r   r   r   q  s     :/ /8 '+nn 1 #(.. $
 !& #
 $ $
  44; r   r   c                      a  ] tR tRt o Rt ! R R4      t]P                  R3R ltR t	]
P                  3R lt]
P                  3R	 lt]
P                  3R
 ltR tR t]R 4       tRR ltR tR tR tRtV tR# )r   i  z@LRU Cache implementation with per-item time-to-live (TTL) value.c                   :   a  ] tR tRt o RtRR ltR tR tRtV t	R# )	TTLCache._Linki  Nc                    Wn         W n        R # r   )rH   expiresr   rH   r;  s   &&&r   r;   TTLCache._Link.__init__  s    H"Lr   c                R    \         P                  V P                  V P                  33# r   )r   r   rH   r;  r"   s   &r   r  TTLCache._Link.__reduce__  s    >>DHHdll#;;;r   c                N    V P                   pV P                  pWn         W!n        R # r   r   r   s   &  r   r   TTLCache._Link.unlink  r   r   )r;  rH   )rH   r;  r   r   NN)
r%   r&   r'   r(   r*   r;   r  r   r+   r,   r-   s   @r   r   r9    s     6		#	<	 	r   r   Nc                    \         P                  WW44       \        P                  4       ;V n        pV;Vn        Vn        \        P                  ! 4       V n	        W n
        R # r   )r   r;   r   r   _TTLCache__rootr   r   r~   r   _TTLCache__links_TTLCache__ttl)r   r:   ttlr   r3   r   s   &&&&& r   r;   TTLCache.__init__  sH    TE=%^^--d $$	DI"..0
r   c                     V P                   V,          pV P                  4       VP                  8  #   \         d     R # i ; iF)rE  r   r;  rE   )r   rH   r   s   && r   rU   TTLCache.__contains__  @    	/<<$D ::<$,,..  		   2 A Ac                     V P                  V4      pV P                  4       VP                  8  * pV'       d   V P	                  V4      # V! W4      #   \         d    R p L0i ; irJ  )_TTLCache__getlinkr   r;  rE   rF   )r   rH   r   r   expireds   &&&  r   r   TTLCache.__getitem__  `    	8>>#&D  ::<$,,7G##C(( ++  	G	   A A"!A"c                   V P                   ;_uu_ 4       pV P                  V4       V! WV4       R R R 4        V P                  V4      pVP                  4        XV P                  ,           Vn	        V P                  ;Vn        pVP                  ;Vn        pV;Vn        Vn        R #   + '       g   i     L; i  \         d(    \
        P                  T4      ;T P                  T&   p Li ; ir   )r   r  rO  r   rE   r   r   rE  rF  r;  rD  r   r   )r   rH   rM   r   r  r   r   r   s   &&&&    r   r   TTLCache.__setitem__  s    ZZZ4KK$U+ 	>>#&D KKMdjj(;;&	D99$	D $$	DI Z
  	;'/~~c'::DLL	;s   B(B; (B8	;/C-,C-c                    V! W4       V P                   P                  V4      pVP                  4        V P                  4       VP                  8  g   \        V4      hR # r   )rE  r   r   r   r;  rE   r   s   &&& r   rR   TTLCache.__delitem__  sH    d ||$

t||+3- ,r   c              #     "   V P                   pVP                  pW!JdJ   V P                  ;_uu_ 4       pW2P                  8  d   VP                  x  R R R 4       VP                  pKN  R #   + '       g   i     L ; i5ir   )rD  r   r   r;  rH   )r   r   r   r  s   &   r   r[   TTLCache.__iter__   sU     {{yyt,,&((N  99D s   2A>A+A>+A;	6A>c                V   V P                   P                  V4       V P                  pV;Vn        Vn        \        V P                  P                  4       R  R7       F*  pW#n        VP                  ;Vn        pV;Vn        Vn        K,  	  V P                  V P                  4       4       R# )c                     V P                   # r   r;  )objs   &r   <lambda>'TTLCache.__setstate__.<locals>.<lambda>  s    #++r   )rH   N)
__dict__updaterD  r   r   sortedrE  valuesr  r   )r   stater   r   r   s   &&   r   __setstate__TTLCache.__setstate__
  s    U#{{ $$	DI4<<..06MNDI#yy(DI$((DI	 O 	DJJL!r   c                    V P                   # )z,The time-to-live value of the cache's items.)rF  r"   s   &r   rG  TTLCache.ttl       zzr   c                   Vf   V P                  4       pV P                  pVP                  pV P                  p. p\        P
                  p\        P                  pW2Jd|   WP                  8  gl   VP                  VP                  V! WP                  4      34       V! WP                  4       WCP                   VP                  pVP                  4        TpK  V# zaRemove expired items from the cache and return an iterable of the
expired `(key, value)` pairs.

)r   rD  r   rE  r   rR   r   r;  r   rH   r   )	r   r  r   r   linksrP  r   r   r   s	   &&       r   r  TTLCache.expire  s    
 <::<D{{yy))))||(;NNDHHmD((&CDE$)hh99DKKMDr   c           	     V   V P                   ;_uu_ 4       pV P                  V4        \        \        V P                  4      4      pW P                  V4      3uuRRR4       #   \         d(    \        R\        T 4      P                  ,          4      Rhi ; i  + '       g   i     R# ; iz]Remove and return the `(key, value)` pair least recently used that
has not already expired.

Nr   )
r   r  r   rZ   rE  r   r   rE   r@   r%   r   r  rH   s   &  r   rL   TTLCache.popitem/      
 ZZZ4KK,4-. XXc]+ Z ! N}tDz/B/BBCMN	 ZZ"   BA"B"2BBB(	c                    \         P                  V 4       V P                  pV;Vn        Vn        V P
                  P                  4        R # r   )r   r#   rD  r   r   rE  r   s   & r   r#   TTLCache.clear=  s7    ${{ $$	DIr   c                b    V P                   V,          pV P                   P                  V4       V# r   )rE  r   r   rH   rM   s   && r   	__getlinkTTLCache.__getlinkC  '    S!  %r   )r   r   __ttlr   )r%   r&   r'   r(   r)   r   r  r5  r;   rU   r   r   r   rR   r[   re  rz   rG  r  rL   r#   rO  r+   r,   r-   s   @r   r   r     s     J   ,0>>T / .3->-> 
, 5:4E4E % .3->->  "  ,, r   c                     a  ] tR tRt o Rt^t]P                   ! R R4      4       t]	P                  R3R ltR t]P                  3R lt]P                  3R	 lt]P                   3R
 ltR t]R 4       tRR ltR tR tR tRtV tR# )r   iI  z;Time aware Least Recently Used (TLRU) cache implementation.c                   4   a  ] tR tRt o RtRR ltR tRtV tR# )TLRUCache._ItemiN  Nc                ,    Wn         W n        R V n        R# )FNrH   r;  removedr<  s   &&&r   r;   TLRUCache._Item.__init__R  s    H"L DLr   c                4    V P                   VP                   8  # r   r\  )r   others   &&r   __lt__TLRUCache._Item.__lt__W  s    <<%--//r   )r;  rH   r  r  rB  )	r%   r&   r'   r(   r*   r;   r  r+   r,   r-   s   @r   _Itemr~  N  s     1		!
	0 	0r   r  Nc                    \         P                  WW44       \        P                  ! 4       V n        . V n        W n        R # r   )r   r;   r~   r   _TLRUCache__items_TLRUCache__order_TLRUCache__ttu)r   r:   ttur   r3   s   &&&&&r   r;   TLRUCache.__init__Z  s.    TE="..0
r   c                     V P                   V,          pV P                  4       VP                  8  #   \         d     R # i ; irJ  )r  r   r;  rE   )r   rH   items   && r   rU   TLRUCache.__contains__`  rL  rM  c                     V P                  V4      pV P                  4       VP                  8  * pV'       d   V P	                  V4      # V! W4      #   \         d    R p L0i ; irJ  )_TLRUCache__getitemr   r;  rE   rF   )r   rH   r   r  rP  s   &&&  r   r   TLRUCache.__getitem__h  rR  rS  c                   V P                   ;_uu_ 4       pV P                  WV4      pWE8  g    R R R 4       R # V P                  V4       V! WV4       R R R 4        RV P                  V4      n        \        P                  VX4      ;V P                  V&   p\        P                  ! V P                  V4       R #   + '       g   i     Lo; i  \
         d     Lhi ; iNT)r   r  r  r  r  rE   r   r  r  heapqheappushr  )r   rH   rM   r   r  r;  r  s   &&&&   r   r   TLRUCache.__setitem__t  s    ZZZ4jjT2GN Z KK$U+ 	*.DNN3' $-??3#@@SDt||T* Z  		s"   B:B:C :C
	CCc                    V P                   ;_uu_ 4       pV! W4       R R R 4       V P                  P                  V4      pRVn        XVP                  8  g   \        V4      hR #   + '       g   i     LP; ir  )r   r  r   r  r;  rE   )r   rH   r   r  r  s   &&&  r   rR   TLRUCache.__delitem__  sZ    ZZZ4$$  ||$t||#3- $ Zs   	A&&A6	c              #     "   V P                    FP  pV P                  ;_uu_ 4       pW!P                  8  d!   VP                  '       g   VP                  x  R R R 4       KR  	  R #   + '       g   i     Kg  ; i5ir   )r  r   r;  r  rH   )r   r   r  s   &  r   r[   TLRUCache.__iter__  sG     LLDt,,&t|||((N  !s"   $A9"A%	A%A9%A60	A9c                    V P                   # )z1The local time-to-use function used by the cache.)r  r"   s   &r   r  TLRUCache.ttu  ri  r   c                   Vf   V P                  4       pV P                  pV P                  p\        V4      \        V4      V P                  ,          8  dC   V Uu. uF  qDP
                  '       d   K  VNK  	  up;V n        p\        P                  ! V4       . p\        P                  p\        P                  pV'       d   V^ ,          P
                  '       g   W^ ,          P                  8  gx   \        P                  ! V4      pVP
                  '       d   Kb  VP                  VP                  V! WP                  4      34       V! WP                  4       W$P                   K  V# u upi rk  )r   r  r  r^   _TLRUCache__HEAP_CLEANUP_FACTORr  r  heapifyr   rR   r   r;  heappopr   rH   )r   r  itemsorderr  rP  r   r   s   &&      r   r  TLRUCache.expire  s    
 <::<Du:E
T%?%???5:#OUT,,DDU#OODL5MM% ))))q)))$q9I9I2I=='D<<<-hh*GHIdHH-((O $Ps   E,3E,c           	     V   V P                   ;_uu_ 4       pV P                  V4        \        \        V P                  4      4      pW P                  V4      3uuRRR4       #   \         d(    \        R\        T 4      P                  ,          4      Rhi ; i  + '       g   i     R# ; iro  )
r   r  r   rZ   r  r   r   rE   r@   r%   rp  s   &  r   rL   TLRUCache.popitem  rr  rs  c                ~    \         P                  V 4       V P                  P                  4        V P                  R  R# r   )r   r#   r  r  r"   s   &r   r#   TLRUCache.clear  s+    $LLOr   c                b    V P                   V,          pV P                   P                  V4       V# r   )r  r   rw  s   && r   	__getitemTLRUCache.__getitem  rz  r   )__itemsr   __ttur   )r%   r&   r'   r(   r)   r  	functoolstotal_orderingr  r  r5  r;   rU   r   r   r   rR   r[   rz   r  r  rL   r#   r  r+   r,   r-   s   @r   r   r   I  s     E	0 	0 	0 ,0>>T / .3->-> 
, 5:4E4E +  .3->->  #  0,
 r   	CacheInfoFc                4   a aaaaa ^RI Ho VV VVVV3R lpV# )zWDecorator to wrap a function with a memoizing callable that saves
results in a cache.

_wrapperc           	         < S'       d`   \        S\        4      '       d   V3R  lpM4\        S\        P                  P                  4      '       d   V3R lpMR pS! V SSSSVR7      # S! V SSSS4      # )c                 F   < \        WSP                  SP                  4      # r   )
_CacheInfor:   rq   hitsmissescaches   &&r   	make_info,cached.<locals>.decorator.<locals>.make_info  s    %dEMM5>>RRr   c                 0   < \        WR \        S4      4      # r   )r  r^   r  s   &&r   r  r    s    %dD#e*EEr   c                     \        W^ ^ 4      # r   )r  )r  r  s   &&r   r  r    s    %dAq99r   info)
isinstancer   r~   abcMapping)funcr  r  r  	conditionr  rH   locks   & r   	decoratorcached.<locals>.decorator  sg    %''S E;??#:#:;;F
: D%dIINND%dI>>r   )_cachedr  r  rH   r  r  r  r  r  s   fffff @r   cachedr    s    
 "? ?* r   c                4   a aaaaa ^RI Ho VV VVVV3R lpV# )zUDecorator to wrap a method with a memoizing callable that saves
results in a cache.

r  c           	      N   < S'       d   R  pS! V SSSSVR7      # S! V SSSS4      # )c                    \        V \        4      '       d"   \        WV P                  V P                  4      # \        V \
        P                  P                  4      '       d   \        WR \        V 4      4      # \        R4      h)Nz)cache(self) must return a mutable mapping)
r  r   r  r:   rq   r~   r  r  r^   	TypeError)r  r  r  s   &&&r   r  2cachedmethod.<locals>.decorator.<locals>.make_info  s\    eU++%dEMM5>>RR{'>'>??%dD#e*EE#$OPPr   r  r   )methodr  r  r  r  r  rH   r  s   & r   r  cachedmethod.<locals>.decorator  s6    Q FE3iiPPFE3i@@r   )_cachedmethodr  r  s   fffff @r   cachedmethodr    s    
 (A A r   )	r   r   r   r   r   r   r   r  r  )r  r  r:   rq   )r)   __all____version__r~   collections.abcr  r  r   r   r	   r   r  MutableMappingr   r   r   r   r   r   r   r   
namedtupler  hashkeyr  	methodkeyr  r   r   r   <module>r     s    6
         $tKOO** tn @Q!u Q!h'%u '%T)e )XH% HVJ{ JZ~ ~B ##:

 llE > !NNE r   