Ë
    ß"h¶  ã                  óL   — 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	y)	zq
greenlet-specific code that pretends to be a `threading.local`.

Fails to import if not running under greenlet.
é    )Úannotations)ÚAny)ÚWeakKeyDictionary)Ú
getcurrentc                  ó0   — e Zd ZdZdd„Zdd„Zd	d„Zd
d„Zy)ÚGreenThreadLocalz6
    threading.local() replacement for greenlets.
    c                ó2   — t        «       | j                  d<   y )NÚ	_weakdict)r   Ú__dict__)Úselfs    úQ/var/www/html/sandstorm/venv/lib/python3.12/site-packages/structlog/_greenlets.pyÚ__init__zGreenThreadLocal.__init__   s   € Ü%6Ó%8ˆ‰kÒ"ó    c                ón   — t        «       }	 | j                  |   |   S # t        $ r t        |«      d ‚w xY w©N©r   r
   ÚKeyErrorÚAttributeError©r   ÚnameÚkeys      r   Ú__getattr__zGreenThreadLocal.__getattr__   s>   € Ü‹lˆð	1Ø—>‘> #Ñ& tÑ,Ð,øÜò 	1Ü  Ó&¨DÐ0ð	1ús   Œ ž4c                óV   — t        «       }|| j                  j                  |i «      |<   y r   )r   r
   Ú
setdefault)r   r   Úvalr   s       r   Ú__setattr__zGreenThreadLocal.__setattr__#   s$   € Ü‹lˆØ36ˆ‰×!Ñ! # rÓ*¨4Ò0r   c                ól   — t        «       }	 | j                  |   |= y # t        $ r t        |«      d ‚w xY wr   r   r   s      r   Ú__delattr__zGreenThreadLocal.__delattr__'   s;   € Ü‹lˆð	1Ø—‘˜sÑ# DÑ)øÜò 	1Ü  Ó&¨DÐ0ð	1ús   Œ 3N)ÚreturnÚNone)r   Ústrr   r   )r   r!   r   r   r   r    )r   r!   r   r    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   © r   r   r   r      s   „ ñó9ó1ó7ô1r   r   N)
r%   Ú
__future__r   Útypingr   Úweakrefr   Úgreenletr   r   r&   r   r   ú<module>r+      s"   ðñõ #å Ý %å ÷1ò 1r   