o
    h                     @   s@   d Z dd Zdd Zdd Zdd Zd	d
 Zdd Zdd ZdS )z'Extensible memoizing decorator helpers.c                    sR   d  fdd} fdd}fdd}||_ ||_|S )N    c               	      s   | i |}( z | }d7 |W W  d    S  t y)   d7 Y nw W d    n1 s4w   Y  | i |}" z ||W W  d    S  tyc   | Y W  d    S w 1 sgw   Y  d S N   KeyError
setdefault
ValueErrorargskwargskresultv)cachefunchitskeylockmisses J/var/www/vscode/kcb/lib/python3.10/site-packages/cachetools/_decorators.pywrapper   s,   z$_cached_locked_info.<locals>.wrapperc                      s:        d W d    d S 1 sw   Y  d S Nr   clearr   )r   r   r   r   r   r   cache_clear   s   
"z(_cached_locked_info.<locals>.cache_clearc                      s2     W  d    S 1 sw   Y  d S Nr   r   )r   infor   r   r   r   
cache_info   s   $z'_cached_locked_info.<locals>.cache_infor   r   )r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   _cached_locked_info   s   r   c                    sH   d  fdd} fdd}||_ fdd|_|S )Nr   c                     sr   | i |}z | }d7 |W S  t y   d7 Y nw | i |}z| |< W |S  ty8   Y |S w r   r   r   r   )r   r   r   r   r   r   r   r   +   s    
z&_cached_unlocked_info.<locals>.wrapperc                      s       d d S r   r   r   )r   r   r   r   r   r   ;   s   z*_cached_unlocked_info.<locals>.cache_clearc                      s
    S r   r   r   )r   r   r   r   r   <lambda>A      
 z'_cached_unlocked_info.<locals>.<lambda>r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   _cached_unlocked_info(   s   r#   c                    s8   d fdd}fdd}||_ fdd|_|S )Nr   c                     s   d7  | i |S r   r   r	   r
   )r   r   r   r   r   H   s   z_uncached_info.<locals>.wrapperc                      s   d d S r   r   r   )r   r   r   r   M   s   z#_uncached_info.<locals>.cache_clearc                      s
    dS r   r   r   )r   r   r   r   r!   R   r"   z _uncached_info.<locals>.<lambda>r   )r   r   r   r   r   )r   r   r   r   _uncached_infoE   s   r%   c                    s*    fdd} fdd}||_ |S )Nc               	      s   | i |} z | W W  d    S  t y   Y nw W d    n1 s*w   Y  | i |}" z ||W W  d    S  tyY   | Y W  d    S w 1 s]w   Y  d S r   r   r	   r
   r   r   r   r   r   r   r   r   r   W   s(   z_cached_locked.<locals>.wrapperc                      s2        W d    d S 1 sw   Y  d S r   r   r   )r   r   r   r   r   f   s   
"z#_cached_locked.<locals>.cache_clearr   )r   r   r   r   r   r   r   r'   r   _cached_lockedV   s   r)   c                    s"    fdd} fdd|_ |S )Nc                     s^   | i |}z | W S  t y   Y nw | i |}z| |< W |S  ty.   Y |S w r   r    r&   r   r   r   r   r   r   o   s   

z!_cached_unlocked.<locals>.wrapperc                      s      S r   r   r   )r   r   r   r!   |   s    z"_cached_unlocked.<locals>.<lambda>r(   )r   r   r   r   r   r*   r   _cached_unlockedn   s   r+   c                    s    fdd}dd |_ |S )Nc                     s    | i |S r   r   r$   r   r   r   r      s   z_uncached.<locals>.wrapperc                   S   s   d S r   r   r   r   r   r   r!      s    z_uncached.<locals>.<lambda>r(   )r   r   r   r,   r   	_uncached   s   
r-   c                 C   s   |d ur&|d u rt | |}|S |d u rt| |||}|S t| ||||}|S |d u r/t| }n|d u r:t| ||}nt| |||}d |_|S r   )r%   r#   r   r-   r+   r)   r   )r   r   r   r   r   r   r   r   r   _cached_wrapper   s    
	
r.   N)__doc__r   r#   r%   r)   r+   r-   r.   r   r   r   r   <module>   s    $