
                         H    S SK Jr  SSKJr   " S S\5      r " S S\5      rg)	    )absolute_import   )DefaultMappingc                   &    \ rS rSrS rS rS rSrg)_DefaultSize   c                     gNr    self_s     #lib/third_party/cachetools/cache.py__getitem___DefaultSize.__getitem__           c                     US:X  d   eg r
   r   )r   r   values      r   __setitem___DefaultSize.__setitem__   s    A::r   c                     gr
   r   r   s     r   pop_DefaultSize.pop   r   r   r   N)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__r   r   r   r   r      s    r   r   c                       \ rS rSrSr\" 5       rSS jrS rS r	S r
S rS	 rS
 rS rS r\S 5       r\S 5       r\S 5       rSrg)Cache   z?Mutable mapping to serve as a simple cache or cache base class.Nc                     U(       a  X l         U R                   [        R                   La  [        5       U l        [        5       U l        SU l        Xl        g )Nr   )	getsizeofr!   dict_Cache__size_Cache__data_Cache__currsize_Cache__maxsize)r   maxsizer$   s      r   __init__Cache.__init__   s8     n~~U__,Fdk&DKDONr   c                     U R                   R                  < S[        U R                  R	                  5       5      < SU R
                  < SU R                  < S3$ )N(z
, maxsize=z, currsize=))	__class__r   listr'   itemsr)   r(   r   s    r   __repr__Cache.__repr__    s<    T[[ !	 r   c                 d     U R                   U   $ ! [         a    U R                  U5      s $ f = fN)r'   KeyError__missing__r   keys     r   r   Cache.__getitem__(   s6    #[[ #c""#s    //c                    U R                   nU R                  U5      nXC:  a  [        S5      eXR                  ;  d  U R                  U   U:  a8  U R
                  U-   U:  a%  U R                  5         U R
                  U-   U:  a  M%  XR                  ;   a  X@R                  U   -
  nOUnX R                  U'   X@R                  U'   U =R
                  U-  sl        g )Nzvalue too large)r)   r$   
ValueErrorr'   r&   r(   popitem)r   r;   r   r*   sizediffsizes         r   r   Cache.__setitem__.   s    nnG>>% D~())
++S!1D!8OOd"W, OOd"W,
kkC((hhKKKKOOxOr   c                 ~    U R                   R                  U5      nU R                  U	 U =R                  U-  sl        g r7   )r&   r   r'   r(   )r   r;   r@   s      r   __delitem__Cache.__delitem__>   s.    ;;??3DCOOtOr   c                     XR                   ;   $ r7   )r'   r:   s     r   __contains__Cache.__contains__C   s    ++r   c                     [        U5      er7   )r8   r:   s     r   r9   Cache.__missing__F   s    
3-r   c                 ,    [        U R                  5      $ r7   )iterr'   r3   s    r   __iter__Cache.__iter__I   s    r   c                 ,    [        U R                  5      $ r7   )lenr'   r3   s    r   __len__Cache.__len__L   s    t{{r   c                     U R                   $ )zThe maximum size of the cache.)r)   r3   s    r   r*   Cache.maxsizeO   s     >>r   c                     U R                   $ )zThe current size of the cache.)r(   r3   s    r   currsizeCache.currsizeT   s     ??r   c                     g)z+Return the size of a cache element's value.r   r   )r   s    r   r$   Cache.getsizeofY   s     r   )
__currsize__data	__maxsize__sizer$   r7   )r   r   r   r   __doc__r   r&   r+   r4   r   r   rD   rG   r9   rM   rQ   propertyr*   rV   staticmethodr$   r   r   r   r   r!   r!      su    G>&#  
      r   r!   N)
__future__r   abcr   objectr   r!   r   r   r   <module>rd      s%    & 	6 	JN Jr   