
    dhk                        d dl mZ d dlZd dlmZmZ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DictGenericOptional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                B    t        | dd       }|i }t        | d|       |S )N_data)getattrsetattr)selfdatas     N/var/www/netwell/bot/venv/lib/python3.12/site-packages/aiogram/utils/mixins.pyr   zDataMixin.data   s+    )0w)E<DD'4(    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'   Optional[Any]r(   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-   r4   )clskwargs	__class__s     r   r8   z&ContextInstanceMixin.__init_subclass__+   s,    !#!,!7!7)CLL>8R!Sr   c                     y r   r1   )r;   s    r   get_currentz ContextInstanceMixin.get_current/   s     	r   c                     y r   r1   r;   no_errors     r   r?   z ContextInstanceMixin.get_current4       
 	r   c                     y r   r1   rA   s     r   r?   z ContextInstanceMixin.get_current;   rC   r   c                    t        t        j                  t           | j                        | _        	 | j                  j                         }|S # t        $ r	 |rd }Y |S  w xY wr   )r
   r9   r:   r2   r4   r&   LookupError)r;   rB   currents      r   r?   z ContextInstanceMixin.get_currentB   sl    
 "&""?3S5K5K"
	141G1G1K1K1MG   	  		s   A A A c                    t        ||       s.t        d| j                  dt        |      j                        | j                  j                  |      S )NzValue should be instance of z not )
isinstance	TypeErrorr-   typer4   set)r;   r   s     r   set_currentz ContextInstanceMixin.set_currentU   sR    %%.s||.>eDKDXDXC[\  %%))%00r   c                :    | j                   j                  |       y r   )r4   reset)r;   tokens     r   reset_currentz"ContextInstanceMixin.reset_current]   s    $$U+r   )r<   r   r(   r*   )r(   Optional[ContextInstance])rB   zLiteral[True]r(   rR   )rB   zLiteral[False]r(   r2   )T)rB   r+   r(   rR   )r   r2   r(   "contextvars.Token[ContextInstance])rP   rS   r(   r*   )r-   r.   r/   __annotations__r8   r   classmethodr?   rM   rQ   __classcell__)r=   s   @r   r   r   (   s    ??T    $	"  
 %	  
 "	" $ 1 1 , ,r   r   )
__future__r   r9   typingr   r   r   r   r   r	   r
   r   typing_extensionsr   __all__r   r2   r   r1   r   r   <module>r[      sG    "  W W W)
/+ +2 +,7,7?3 7,r   