
    F˝iN                        d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d dlmZ d d
lmZ edef   Zej4                  j6                  ej4                  j8                  ej4                  j:                  hZe G d d             Ze G d de             Z e G d de             Z!y)    N)Callable)	dataclassfield)partial)Any)MagicFilter)extract_flags_from_object)Filter)BaseHandler)Recommendation.c                       e Zd ZU eed<    ed      Zeed<    ed      Ze	e
   ed<    ed      Zeed<   dd	Zd
ee
ef   dee
ef   fdZded
edefdZy)CallableObjectcallbackF)init	awaitableparamsvarkwreturnNc                    t        j                  | j                        }t        j                  |      xs t        j                  |      | _        i }t        j                  dk\  rdd l}|j                  j                  |d<   	 t        j                  |fi |}t               }d}|j"                  j%                         D ]Z  }|j&                  t(        v r|j+                  |j,                         1|j&                  t         j.                  j0                  k(  sYd}\ || _        || _        y # t        t        f$ r t               | _        d| _        Y y w xY w)N)      r   annotation_formatFT)inspectunwrapr   isawaitableiscoroutinefunctionr   sysversion_infoannotationlibFormat
FORWARDREF	signature
ValueError	TypeErrorsetr   r   
parametersvalueskind_ACCEPTED_PARAM_KINDSaddname	ParameterVAR_KEYWORD)selfr   kwargsr   r"   r   r   ps           Y/home/leshdev/mybot/venv/lib/python3.12/site-packages/aiogram/dispatcher/event/handler.py__post_init__zCallableObject.__post_init__"   s   >>$--0 ,,X6_':U:UV^:_!#w& *7*>*>*I*IF&'	))(=f=I 5%%,,. 	Avv..

166"7,,888		
 
 I& 	%DKDJ	s   D, ,%EEr/   c                 n    | j                   r|S | j                  D ci c]  }||v s|||    c}S c c}w N)r   r   )r.   r/   ks      r1   _prepare_kwargszCallableObject._prepare_kwargs>   s4    ::M&*kkAQ&[6!9AAAs   	22argsc                    K   t        | j                  g|i | j                  |      }| j                  r |        d {   S t	        j
                  |       d {   S 7 !7 wr4   )r   r   r6   r   asyncio	to_thread)r.   r7   r/   wrappeds       r1   callzCallableObject.callD   sW     $--O$O$2F2Fv2NO>> ?"&&w/// #/s#   ?A'A#A'A%A'%A'r   N)__name__
__module____qualname__CallbackType__annotations__r   r   boolr   r%   strr   r2   dictr   r6   r<        r1   r   r      s~    'It'%(FCH(U#E4#8Bd38n Bc3h B0 0s 0s 0rG   r   c                   6     e Zd ZU dZedz  ed<   d fdZ xZS )FilterObjectNmagicc                 ^   t        | j                  t              rb| j                  | _        | j                  j                  | _        t        | j                  t
              st        j                  t        dd       t        | )          t        | j                  t              rd| _        y y )NzYou are using F provided by magic_filter package directly, but it lacks `.as_()` extension.
 Please change the import statement: from `from magic_filter import F` to `from aiogram import F` to silence this warning.   )categorymessage
stacklevelT)
isinstancer   OriginalMagicFilterrJ   resolver   warningswarnr   superr2   r
   r   )r.   	__class__s    r1   r2   zFilterObject.__post_init__O   s    dmm%89 DJ MM11DMdjj+6+J  ! 	dmmV,!DN -rG   r=   )r>   r?   r@   rJ   r   rB   r2   __classcell__rV   s   @r1   rI   rI   K   s     $E;$" "rG   rI   c            
            e Zd ZU dZee   dz  ed<    ee      Z	ee
ef   ed<   d
 fdZdededeeee
ef   f   fd	Z xZS )HandlerObjectNfilters)default_factoryflagsr   c                     t         |           t        j                  | j                        }t        j
                  |      rt        |t              rd| _        | j                  j                  t        |             y )NT)rU   r2   r   r   r   isclass
issubclassr   r   r]   updater	   )r.   r   rV   s     r1   r2   zHandlerObject.__post_init__k   sT    >>$--0??8$Hk)J!DN

3H=>rG   r7   r/   c                    K   | j                   sd|fS | j                   D ]F  } |j                  |i | d {   }|sd|fc S t        |t              s6|j	                  |       H d|fS 7 4w)NTF)r[   r<   rP   rE   ra   )r.   r7   r/   event_filterchecks        r1   rd   zHandlerObject.checkr   sx     ||< LL 	%L+,++T<V<<Ef}$%&e$	% V| =s   5A.A,A.A.r=   )r>   r?   r@   r[   listrI   rB   r   rE   r]   rD   r   r2   tuplerC   rd   rW   rX   s   @r1   rZ   rZ   f   s_    )-GT,$&-!$7E4S>7?	 	 	dDcN>R8S 	rG   rZ   )"r9   r   r   rS   collections.abcr   dataclassesr   r   	functoolsr   typingr   magic_filter.magicr   rQ   aiogram.dispatcher.flagsr	   aiogram.filters.baser
   aiogram.handlersr   aiogram.utils.magic_filteraiogram.utils.warningsr   rA   r,   POSITIONAL_ONLYPOSITIONAL_OR_KEYWORDKEYWORD_ONLYr)   r   rI   rZ   rF   rG   r1   <module>rt      s      
  $ (   A > ' ( 2 1S! %%++""  ,0 ,0 ,0^ "> " "4 N  rG   