o
    Uj
                     @  sv   d dl mZ d dlZd dlmZmZmZmZmZm	Z	 er"d dlm
Z
 dZG dd dZedZG d	d
 d
ee ZdS )    )annotationsN)TYPE_CHECKINGAnyGenericTypeVarcastoverload)Literal)ContextInstanceMixin	DataMixinc                   @  sN   e Zd ZedddZddd	ZdddZdddZdddZddddZ	dS )r   returndict[str, Any]c                 C  s"   t | dd }|d u ri }|| _|S )N_data)getattrr   )selfdata r   M/opt/telega-widget/.venv/lib/python3.10/site-packages/aiogram/utils/mixins.pyr      s
   zDataMixin.datakeystrr   c                 C  s
   | j | S Nr   r   r   r   r   r   __getitem__      
zDataMixin.__getitem__valueNonec                 C  s   || j |< d S r   r   )r   r   r   r   r   r   __setitem__      zDataMixin.__setitem__c                 C  s   | j |= d S r   r   r   r   r   r   __delitem__   s   zDataMixin.__delitem__boolc                 C  s
   || j v S r   r   r   r   r   r   __contains__   r   zDataMixin.__contains__Ndefault
Any | Nonec                 C  s   | j ||S r   )r   get)r   r   r"   r   r   r   r$   !   r   zDataMixin.get)r   r   )r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r   r    r   )r   r   r"   r#   r   r#   )
__name__
__module____qualname__propertyr   r   r   r   r!   r$   r   r   r   r   r      s    



r   ContextInstancec                      s   e Zd ZU ded< d fddZeedd
dZeedddZeedddZe	d d!ddZed"ddZed#ddZ	  Z
S )$r
   z'contextvars.ContextVar[ContextInstance]'_ContextInstanceMixin__context_instancekwargsr   r   r   c                   s"   t    td| j | _d S )N	instance_)super__init_subclass__contextvars
ContextVarr%   r*   )clsr+   	__class__r   r   r.   +   s   
z&ContextInstanceMixin.__init_subclass__ContextInstance | Nonec                 C     d S r   r   )r1   r   r   r   get_current/   s   z ContextInstanceMixin.get_currentno_errorLiteral[True]c                 C  r5   r   r   r1   r7   r   r   r   r6   4      Literal[False]r)   c                 C  r5   r   r   r9   r   r   r   r6   <   r:   Tr    c                 C  s8   | j | _ z| j  }W |S  ty   |rd }Y |S  w r   )r*   r$   LookupError)r1   r7   currentr   r   r   r6   D   s   r   "contextvars.Token[ContextInstance]c                 C  s<   t || sd| jdt|j}t|| jtt|S )NzValue should be instance of z not )
isinstancer%   type	TypeErrorr*   setr   r)   )r1   r   msgr   r   r   set_currentU   s   
z ContextInstanceMixin.set_currenttokenc                 C  s   | j | d S r   )r*   reset)r1   rE   r   r   r   reset_current\   s   z"ContextInstanceMixin.reset_current)r+   r   r   r   )r   r4   )r7   r8   r   r4   )r7   r;   r   r)   )T)r7   r    r   r4   )r   r)   r   r>   )rE   r>   r   r   )r%   r&   r'   __annotations__r.   r   classmethodr6   rD   rG   __classcell__r   r   r2   r   r
   (   s&   
 r
   )
__future__r   r/   typingr   r   r   r   r   r   r	   __all__r   r)   r
   r   r   r   r   <module>   s     