o
    㥵i                     @  sX   d dl mZ d dlZd dlmZ d dlmZ dgZe	dZ
dd
dZedddZdS )    )annotationsN)contextmanager)
ContextVarbind_contextvarT
contextvarContextVar[T]returnc                   s   G  fddd}| S )Nc                      sX   e Zd ZdZ fddZ fddZ fddZ fdd	Z fd
dZ fddZ	dS )z'bind_contextvar.<locals>.ContextVarBind c                   s   t   |S N)getattrgetselfnamer   r
   I/home/ubuntu/.local/lib/python3.10/site-packages/kui/utils/contextvars.py__getattr__      z3bind_contextvar.<locals>.ContextVarBind.__getattr__c                   s   t   || d S r   )setattrr   )r   r   valuer   r
   r   __setattr__   s   z3bind_contextvar.<locals>.ContextVarBind.__setattr__c                   s   t   | d S r   )delattrr   r   r   r
   r   __delattr__   s   z3bind_contextvar.<locals>.ContextVarBind.__delattr__c                   s      | S r   r   r   indexr   r
   r   __getitem__   s   z3bind_contextvar.<locals>.ContextVarBind.__getitem__c                   s   |   |< d S r   r   )r   r   r   r   r
   r   __setitem__   s   z3bind_contextvar.<locals>.ContextVarBind.__setitem__c                   s      |= d S r   r   r   r   r
   r   __delitem__   r   z3bind_contextvar.<locals>.ContextVarBind.__delitem__N)
__name__
__module____qualname__	__slots__r   r   r   r   r   r   r
   r   r
   r   ContextVarBind   s    r$   r
   )r   r$   r
   r   r   r      s   varr   t.Generator[None, None, None]c                 c  s     |  |}d V  | | d S r   )setreset)r%   r   tokenr
   r
   r   context_setter%   s   
r*   )r   r   r	   r   )r%   r   r   r   r	   r&   )
__future__r   typingt
contextlibr   contextvarsr   __all__TypeVarr   r   r*   r
   r
   r
   r   <module>   s    

