o
    YÛ·iÁ  ã                   @   s^   d Z dZddlZdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
ddd„ZdS )zFunction decorator helpers.© é    Nc           	         s\   d ‰‰t ƒ ‰‡ ‡‡‡‡‡‡‡fdd„}‡ ‡‡‡fdd„}‡‡‡‡fdd„}||_||_|S )Nr   c                     s–  ˆ| i |¤Ž‰ ˆ7 ˆ  ‡ ‡fdd„¡ zˆˆ  }ˆd7 ‰|W W  d   ƒ S  ty8   ˆ ˆ ¡ ˆd7 ‰Y nw W d   ƒ n1 sCw   Y  zfˆ| i |¤Ž}ˆ6 z|ˆˆ < W n	 tyb   Y nw |W  d   ƒ W ˆ ˆ ˆ ¡ ˆ ¡  W d   ƒ S 1 s‚w   Y  S 1 s‹w   Y  W ˆ ˆ ˆ ¡ ˆ ¡  W d   ƒ d S 1 s¨w   Y  d S ˆ ˆ ˆ ¡ ˆ ¡  W d   ƒ w 1 sÅw   Y  w )Nc                      ó   ˆ ˆvS ©Nr   r   ©ÚkÚpendingr   úH/home/ubuntu/vllm_env/lib/python3.10/site-packages/cachetools/_cached.pyÚ<lambda>   ó    z2_condition_info.<locals>.wrapper.<locals>.<lambda>é   ©Úwait_forÚKeyErrorÚaddÚ
ValueErrorÚremoveÚ
notify_all©ÚargsÚkwargsÚresultÚv)ÚcacheÚcondÚfuncÚhitsÚkeyÚlockÚmissesr   ©r   r   Úwrapper   sH   û
þø	ÿû

þù

(þ

þz _condition_info.<locals>.wrapperc                      ó:   ˆ ˆ   ¡  d ‰‰W d   ƒ d S 1 sw   Y  d S ©Nr   ©Úclearr   ©r   r   r   r   r   r   Úcache_clear*   ó   
"þz$_condition_info.<locals>.cache_clearc                      ó2   ˆ ˆˆ ˆƒW  d   ƒ S 1 sw   Y  d S r   r   r   ©r   Úinfor   r   r   r   Ú
cache_info0   ó   $ÿz#_condition_info.<locals>.cache_info)Úsetr&   r+   )	r   r   r   r   r   r*   r    r&   r+   r   )	r   r   r   r   r*   r   r   r   r   r   Ú_condition_info   s   r.   c                    sR   d ‰‰‡ ‡‡‡‡‡fdd„}‡ ‡‡‡fdd„}‡‡‡‡fdd„}||_ ||_|S )Nr   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 ©Nr   ©r   Ú
setdefaultr   ©r   r   r   r   r   )r   r   r   r   r   r   r   r   r    <   s,   üÿúûùúz_locked_info.<locals>.wrapperc                      r!   r"   r#   r   r%   r   r   r&   P   r'   z!_locked_info.<locals>.cache_clearc                      r(   r   r   r   r)   r   r   r+   V   r,   z _locked_info.<locals>.cache_info©r&   r+   )r   r   r   r   r*   r    r&   r+   r   )r   r   r   r*   r   r   r   r   Ú_locked_info9   s   r4   c                    sL   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   r2   )r   r   r   r   r   r   r   r    b   s    ÿ
þþz_unlocked_info.<locals>.wrapperc                      s   ˆ   ¡  d ‰‰d S r"   r#   r   )r   r   r   r   r   r&   r   s   z#_unlocked_info.<locals>.cache_clearc                      s
   ˆˆ ˆƒS r   r   r   )r   r*   r   r   r   r+   w   s   
z"_unlocked_info.<locals>.cache_infor3   )r   r   r   r*   r    r&   r+   r   )r   r   r   r*   r   r   r   Ú_unlocked_info_   s   r6   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    ‚   s   z_uncached_info.<locals>.wrapperc                      s   d‰ d S r"   r   r   )r   r   r   r&   ‡   s   z#_uncached_info.<locals>.cache_clearc                      s
   ˆ dˆƒS r"   r   r   )r*   r   r   r   r	   Œ   s   
 z _uncached_info.<locals>.<lambda>r3   )r   r*   r    r&   r   )r   r*   r   r   Ú_uncached_info   s   r8   c                    s4   t ƒ ‰‡ ‡‡‡‡‡fdd„}‡ ‡fdd„}||_|S )Nc                     s†  ˆ| i |¤Ž‰ ˆ/ ˆ  ‡ ‡fdd„¡ zˆˆ  }|W W  d   ƒ S  ty0   ˆ ˆ ¡ Y nw W d   ƒ n1 s;w   Y  zfˆ| i |¤Ž}ˆ6 z|ˆˆ < W n	 tyZ   Y nw |W  d   ƒ W ˆ ˆ ˆ ¡ ˆ ¡  W d   ƒ S 1 szw   Y  S 1 sƒw   Y  W ˆ ˆ ˆ ¡ ˆ ¡  W d   ƒ d S 1 s w   Y  d S ˆ ˆ ˆ ¡ ˆ ¡  W d   ƒ w 1 s½w   Y  w )Nc                      r   r   r   r   r   r   r   r	   –   r
   z-_condition.<locals>.wrapper.<locals>.<lambda>r   r   ©r   r   r   r   r   r   r   r   r    “   sD   üÿúÿû

þù

(þ

þz_condition.<locals>.wrapperc                      ó2   ˆ ˆ   ¡  W d   ƒ d S 1 sw   Y  d S r   r#   r   ©r   r   r   r   r&   ©   ó   
"ÿz_condition.<locals>.cache_clear)r-   r&   )r   r   r   r   r   r    r&   r   r9   r   Ú
_condition   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   r0   ©r   r   r   r   ©r   r   r   r   r   r   r    ²   s(   þÿüûùúz_locked.<locals>.wrapperc                      r:   r   r#   r   r;   r   r   r&   Ã   r<   z_locked.<locals>.cache_clear©r&   )r   r   r   r   r    r&   r   r?   r   Ú_locked±   s   rA   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   r5   r>   ©r   r   r   r   r   r    Ì   s   
ÿ
þþz_unlocked.<locals>.wrapperc                      s   ˆ   ¡ S r   r#   r   )r   r   r   r	   Ù   r
   z_unlocked.<locals>.<lambda>r@   )r   r   r   r    r   rB   r   Ú	_unlockedË   s   rC   c                    s   ‡ fdd„}dd„ |_ |S )Nc                     s   ˆ | i |¤ŽS r   r   r7   ©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   rD   r   Ú	_uncachedÝ   s   
rE   c                 C   s.  |d urC|d u rt | |ƒ}nq|d ur |d ur t| |||||ƒ}n_|d ur.t| |||||ƒ}nQ|d ur;t| ||||ƒ}nDt| |||ƒ}n<|d u rLt| ƒ}n0|d ur]|d ur]t| ||||ƒ}n|d urjt| ||||ƒ}n|d urvt| |||ƒ}nt| ||ƒ}d |_||_	||_
|d ur‹|n||_||_t || ¡S r   )r8   r.   r4   r6   rE   r=   rA   rC   r+   r   Ú	cache_keyÚ
cache_lockÚcache_conditionÚ	functoolsÚupdate_wrapper)r   r   r   r   r   r*   r    r   r   r   Ú_wrapperå   s2   
rK   )NNN)Ú__doc__Ú__all__rI   r.   r4   r6   r8   r=   rA   rC   rE   rK   r   r   r   r   Ú<module>   s    ,& !