ó
    öÞ j¶  ã                  óL   • S r SSKJr  SSKJr  SSKJr  SSKJr   " S S5      r	g)	zq
greenlet-specific code that pretends to be a `threading.local`.

Fails to import if not running under greenlet.
é    )Úannotations)ÚAny)ÚWeakKeyDictionary)Ú
getcurrentc                  ó@   • \ rS rSrSrS	S jrS
S jrSS jrSS jrSr	g)ÚGreenThreadLocalé   z.
threading.local() replacement for greenlets.
c                ó2   • [        5       U R                  S'   g )NÚ	_weakdict)r   Ú__dict__)Úselfs    ÚN/var/www/html/gaurav/venv/lib/python3.13/site-packages/structlog/_greenlets.pyÚ__init__ÚGreenThreadLocal.__init__   s   € Ü%6Ó%8ˆ�‰�kÒ"ó    c                óp   • [        5       n U R                  U   U   $ ! [         a    [        U5      S ef = f©N©r   r   ÚKeyErrorÚAttributeError©r   ÚnameÚkeys      r   Ú__getattr__ÚGreenThreadLocal.__getattr__   s>   € Ü‹lˆð	1Ø—>‘> #Ñ& tÑ,Ð,øÜó 	1Ü  Ó&¨DÐ0ð	1ús   Œ ž5c                óT   • [        5       nX R                  R                  U0 5      U'   g r   )r   r   Ú
setdefault)r   r   Úvalr   s       r   Ú__setattr__ÚGreenThreadLocal.__setattr__#   s"   € Ü‹lˆØ36�‰×!Ñ! # rÓ*¨4Ò0r   c                ón   • [        5       n U R                  U   U	 g ! [         a    [        U5      S ef = fr   r   r   s      r   Ú__delattr__ÚGreenThreadLocal.__delattr__'   s;   € Ü‹lˆð	1Ø—‘˜sÑ# DÑ)øÜó 	1Ü  Ó&¨DÐ0ð	1ús   Œ �4© N)ÚreturnÚNone)r   Ústrr%   r   )r   r'   r   r   r%   r&   )r   r'   r%   r&   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   r"   Ú__static_attributes__r$   r   r   r   r      s   † ñô9ô1ô7÷1r   r   N)
r,   Ú
__future__r   Útypingr   Úweakrefr   Úgreenletr   r   r$   r   r   Ú<module>r2      s"   ðñõ #å Ý %å ÷1ò 1r   