
    q`F                     H    d dl mZ  G d d          Z G d de          ZdS )    )MutableMappingc                   $    e Zd ZdZd Zd Zd ZdS )_DefaultSize c                     dS N   r   self_s     0lib/python3.11/site-packages/cachetools/cache.py__getitem__z_DefaultSize.__getitem__       q    c                     |dk    sJ d S r   r   )r   r   values      r   __setitem__z_DefaultSize.__setitem__   s    zzzzzzr   c                     dS r   r   r
   s     r   popz_DefaultSize.pop   r   r   N)__name__
__module____qualname__	__slots__r   r   r   r   r   r   r   r      sF        I        r   r   c                       e Zd ZdZ e            Z e            ZddZd Z	d Z
d Zd Zd Zd	 Zd
 Zd ZddZefdZddZed             Zed             Zed             ZdS )Cachez?Mutable mapping to serve as a simple cache or cache base class.Nc                     |r|| _         | j         t          j         urt                      | _        t                      | _        d| _        || _        d S )Nr   )	getsizeofr   dict_Cache__size_Cache__data_Cache__currsize_Cache__maxsize)r   maxsizer   s      r   __init__zCache.__init__   sH     	'&DN>00&&DKff r   c                     | j         j        dt          | j                                                  d| j        d| j        dS )N(z
, maxsize=z, currsize=))	__class__r   listr    itemsr"   r!   r   s    r   __repr__zCache.__repr__"   sK    N###""$$%%%%NNNOOO	
 	
r   c                 h    	 | j         |         S # t          $ r |                     |          cY S w xY wN)r    KeyError__missing__r   keys     r   r   zCache.__getitem__*   sI    	);s## 	) 	) 	)##C(((((	)s    11c                 |   | j         }|                     |          }||k    rt          d          || j        vs| j        |         |k     r0| j        |z   |k    r"|                                  | j        |z   |k    "|| j        v r|| j        |         z
  }n|}|| j        |<   || j        |<   | xj        |z  c_        d S )Nzvalue too large)r"   r   
ValueErrorr    r   r!   popitem)r   r2   r   r#   sizediffsizes         r   r   zCache.__setitem__0   s    .~~e$$'>>.///dk!!T[%5%<%</D(722 /D(722$+dk#..HHH CC8#r   c                 j    | j                             |          }| j        |= | xj        |z  c_        d S r.   )r   r   r    r!   )r   r2   r6   s      r   __delitem__zCache.__delitem__@   s3    {s##K4r   c                     || j         v S r.   )r    r1   s     r   __contains__zCache.__contains__E   s    dk!!r   c                      t          |          r.   )r/   r1   s     r   r0   zCache.__missing__H   s    smmr   c                 *    t          | j                  S r.   )iterr    r+   s    r   __iter__zCache.__iter__K   s    DK   r   c                 *    t          | j                  S r.   )lenr    r+   s    r   __len__zCache.__len__N   s    4;r   c                     || v r| |         S |S r.   r   )r   r2   defaults      r   getz	Cache.getQ   s    $;;9Nr   c                 Z    || v r| |         }| |= n|| j         u rt          |          |}|S r.   )_Cache__markerr/   r   r2   rD   r   s       r   r   z	Cache.popW   s@    $;;IES		%%3--Er   c                 .    || v r	| |         }n|x| |<   }|S r.   r   rH   s       r   
setdefaultzCache.setdefaulta   s)    $;;IEE ''DIr   c                     | j         S )zThe maximum size of the cache.)r"   r+   s    r   r#   zCache.maxsizeh   s     ~r   c                     | j         S )zThe current size of the cache.)r!   r+   s    r   currsizezCache.currsizem   s     r   c                     dS )z+Return the size of a cache element's value.r	   r   )r   s    r   r   zCache.getsizeofr   s	     qr   r.   )r   r   r   __doc__objectrG   r   r   r$   r,   r   r   r9   r;   r0   r?   rB   rE   r   rJ   propertyr#   rM   staticmethodr   r   r   r   r   r      sN       IIvxxH\^^F! ! ! !
 
 
) ) )$ $ $      
" " "  ! ! !          (          X   X   \  r   r   N)collections.abcr   r   r   r   r   r   <module>rT      s}    * * * * * *       c c c c cN c c c c cr   