
    	h                    T    d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d d          Z	dS )	zq
greenlet-specific code that pretends to be a `threading.local`.

Fails to import if not running under greenlet.
    )annotations)Any)WeakKeyDictionary)
getcurrentc                  2    e Zd ZdZddZddZdd
ZddZdS )GreenThreadLocalz6
    threading.local() replacement for greenlets.
    returnNonec                2    t                      | j        d<   d S )N	_weakdict)r   __dict__)selfs    a/var/www/html/web-builder-api.evdpl.com/venv/lib/python3.11/site-packages/structlog/_greenlets.py__init__zGreenThreadLocal.__init__   s    %6%8%8k"""    namestrr   c                    t                      }	 | j        |         |         S # t          $ r t          |          d w xY wNr   r   KeyErrorAttributeErrorr   r   keys      r   __getattr__zGreenThreadLocal.__getattr__   sM    ll	1>#&t,, 	1 	1 	1 &&D0	1s   # >valc                ^    t                      }|| j                            |i           |<   d S r   )r   r   
setdefault)r   r   r   r   s       r   __setattr__zGreenThreadLocal.__setattr__#   s-    ll36!!#r**4000r   c                |    t                      }	 | j        |         |= d S # t          $ r t          |          d w xY wr   r   r   s      r   __delattr__zGreenThreadLocal.__delattr__'   sP    ll	1s#D))) 	1 	1 	1 &&D0	1s     ;N)r	   r
   )r   r   r	   r   )r   r   r   r   r	   r
   )r   r   r	   r
   )__name__
__module____qualname____doc__r   r   r   r!    r   r   r   r      sn         9 9 9 91 1 1 17 7 7 71 1 1 1 1 1r   r   N)
r%   
__future__r   typingr   weakrefr   greenletr   r   r&   r   r   <module>r+      s     # " " " " "       % % % % % %      1 1 1 1 1 1 1 1 1 1r   