o
    5˜Žj
  ã                   @  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   úQ/var/www/kodo/Anonymous/send/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     