o
    —¨Êhû  ã                   @  sj   d Z ddlmZ ddlmZ dZzddlmZ W n e	y'   ddlm
Z Y nw eƒ ZG dd„ deƒZdS )	zObject Utilities.é    )Úannotations)ÚRLock)Úcached_property)Úthreaded_cached_propertyc                      sP   e Zd ZdZd‡ fdd„	Zd‡ fdd„	Zdd„ Zd	d
„ Zdd„ Zdd„ Z	‡  Z
S )r   z"Implementation of Cached property.Nc                   sF   t ƒ  |¡ || _|| _t| dƒs| jj| _t| dƒs!tƒ | _	d S d S )NÚattrnameÚlock)
ÚsuperÚ__init__Ú_cached_property__setÚ_cached_property__delÚhasattrÚfuncÚ__name__r   r   r   )ÚselfÚfgetÚfsetÚfdel©Ú	__class__© úE/var/www/html/env/lib/python3.10/site-packages/kombu/utils/objects.pyr	      s   


üzcached_property.__init__c                   s8   | j � tƒ  ||¡W  d   ƒ S 1 sw   Y  d S ©N)r   r   Ú__get__)r   ÚinstanceÚownerr   r   r   r   $   s   $ÿzcached_property.__get__c                 C  s^   |d u r| S | j � | jd ur|  ||¡}|j}||| j< W d   ƒ d S 1 s(w   Y  d S r   )r   r
   Ú__dict__r   )r   r   ÚvalueÚcacher   r   r   Ú__set__*   s   
"ûzcached_property.__set__c                 C  s‚   |d u r| S | j �. |j | jt¡}| jr'|tur/|  ||¡ W d   ƒ d S W d   ƒ d S W d   ƒ d S 1 s:w   Y  d S r   )r   r   Úpopr   Ú
_NOT_FOUNDr   )r   r   r   r   r   r   Ú
__delete__5   s   üý"ýzcached_property.__delete__c                 C  s   |   | j|| j¡S r   )r   r   r   )r   r   r   r   r   Úsetter?   ó   zcached_property.setterc                 C  s   |   | j| j|¡S r   )r   r   r
   )r   r   r   r   r   ÚdeleterB   r#   zcached_property.deleter)NNNr   )r   Ú
__module__Ú__qualname__Ú__doc__r	   r   r   r!   r"   r$   Ú__classcell__r   r   r   r   r      s    
r   N)r'   Ú
__future__r   Ú	threadingr   Ú__all__Ú	functoolsr   Ú_cached_propertyÚImportErrorr   Úobjectr    r   r   r   r   Ú<module>   s    þ