U
    Ã@ÛfÅ  ã                   @   sN   d dl Z d dlmZ ddgZdd„ ZG dd„ dƒZdd	„ ZG d
d„ deƒZdS )é    N)ÚgreenthreadÚ	get_identÚlocalc                   C   s   t t ¡ ƒS )z= Returns ``id()`` of current greenlet.  Useful for debugging.)Úidr   Ú
getcurrent© r   r   úL/var/www/html/chatgpt/venv/lib/python3.8/site-packages/eventlet/corolocal.pyr      s    c                   @   s   e Zd ZdZdd„ ZdS )Ú
_localbase)Ú_local__argsÚ_local__greensc                 O   sN   t  | ¡}t  |d||f¡ t  |dt ¡ ¡ |s6|rJ| jt jkrJtdƒ‚|S )Nr
   r   z*Initialization arguments are not supported)ÚobjectÚ__new__Ú__setattr__ÚweakrefÚWeakKeyDictionaryÚ__init__Ú	TypeError)ÚclsÚargsÚkwÚselfr   r   r   r      s    
z_localbase.__new__N)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r   r   r   r   r	      s   r	   c                 C   sj   t  | d¡}t ¡ }||krTi ||< t| ƒ}|jt jk	rTt  | d¡\}}| j||Ž t  | d|| ¡ d S )Nr   r
   Ú__dict__)r   Ú__getattribute__r   r   Útyper   r   )ZthrlZgreensÚcurr   r   r   r   r   r   Ú_patch   s    r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )r   c                 C   s   t | ƒ t | |¡S ©N)r   r   r   ©r   Úattrr   r   r   r   +   s    zlocal.__getattribute__c                 C   s   t | ƒ t | ||¡S r    )r   r   r   )r   r"   Úvaluer   r   r   r   /   s    zlocal.__setattr__c                 C   s   t | ƒ t | |¡S r    )r   r   Ú__delattr__r!   r   r   r   r$   3   s    zlocal.__delattr__N)r   r   r   r   r   r$   r   r   r   r   r   *   s   )r   Zeventletr   Ú__all__r   r	   r   r   r   r   r   r   Ú<module>   s   