
    G˝i
                        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      Z ed      Z G d	 d
ee         Zy)    )annotationsN)TYPE_CHECKINGAnyGenericTypeVarcastoverload)Literal)ContextInstanceMixin	DataMixinc                  H    e Zd Zedd       Zd	dZd
dZddZddZdddZ	y)r   c                6    t        | dd       }|	i }|| _        |S )N_data)getattrr   )selfdatas     M/home/leshdev/mybot/venv/lib/python3.12/site-packages/aiogram/utils/mixins.pyr   zDataMixin.data   s&    &-dGT&B<DDJ    c                     | j                   |   S Nr   r   keys     r   __getitem__zDataMixin.__getitem__   s    yy~r   c                "    || j                   |<   y r   r   )r   r   values      r   __setitem__zDataMixin.__setitem__   s    		#r   c                    | j                   |= y r   r   r   s     r   __delitem__zDataMixin.__delitem__   s    IIcNr   c                    || j                   v S r   r   r   s     r   __contains__zDataMixin.__contains__   s    diir   Nc                :    | j                   j                  ||      S r   )r   get)r   r   defaults      r   r#   zDataMixin.get!   s    yy}}S'**r   )returnzdict[str, Any])r   strr%   r   )r   r&   r   r   r%   None)r   r&   r%   r'   )r   r&   r%   boolr   )r   r&   r$   
Any | Noner%   r)   )
__name__
__module____qualname__propertyr   r   r   r   r!   r#    r   r   r   r      s-      +r   r   ContextInstancec                       e Zd ZU ded<   d
 fdZeedd              Zee	 	 	 	 dd              Zee	 	 	 	 dd              Ze	 d	 	 	 dd       Zedd       Zedd	       Z	 xZ
S )r   z'contextvars.ContextVar[ContextInstance]'_ContextInstanceMixin__context_instancec                p    t         |           t        j                  d| j                         | _        y )N	instance_)super__init_subclass__contextvars
ContextVarr*   r1   )clskwargs	__class__s     r   r5   z&ContextInstanceMixin.__init_subclass__+   s,    !#!,!7!7)CLL>8R!Sr   c                     y r   r.   )r8   s    r   get_currentz ContextInstanceMixin.get_current/   s     	r   c                     y r   r.   r8   no_errors     r   r<   z ContextInstanceMixin.get_current4        	r   c                     y r   r.   r>   s     r   r<   z ContextInstanceMixin.get_current<   r@   r   c                    t        t        j                  t           | j                        | _        	 | j                  j                         }|S # t        $ r	 |rd }Y |S  w xY wr   )r   r6   r7   r/   r1   r#   LookupError)r8   r?   currents      r   r<   z ContextInstanceMixin.get_currentD   sm     "&""?3"""

	.1.D.D.H.H.JG   	  		s   A A A c                    t        ||       s0d| j                  dt        |      j                  }t        |      | j                  j                  |      S )NzValue should be instance of z not )
isinstancer*   type	TypeErrorr1   set)r8   r   msgs      r   set_currentz ContextInstanceMixin.set_currentY   sO    %%00@d5kFZFZE]^CC. %%))%00r   c                :    | j                   j                  |       y r   )r1   reset)r8   tokens     r   reset_currentz"ContextInstanceMixin.reset_current`   s    $$U+r   )r9   r   r%   r'   )r%   ContextInstance | None)r?   zLiteral[True]r%   rP   )r?   zLiteral[False]r%   r/   )T)r?   r(   r%   rP   )r   r/   r%   "contextvars.Token[ContextInstance])rN   rQ   r%   r'   )r*   r+   r,   __annotations__r5   r	   classmethodr<   rK   rO   __classcell__)r:   s   @r   r   r   (   s    ??T     
      
     
  ( 1 1 , ,r   r   )
__future__r   r6   typingr   r   r   r   r   r	   r
   __all__r   r/   r   r.   r   r   <module>rX      sD    "  G G
/+ +2 +,:,7?3 :,r   