o
    @j/                     @   s   d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
mZmZmZmZ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 ed
e
f ZeG dd dZeG dd deZeG dd deZ dS )    N)	dataclassfield)partial)AnyCallableDictListOptionalSetTuple)MagicFilter)extract_flags_from_object)Filter)BaseHandler)Recommendation.c                   @   s   e Zd ZU eed< eddZeed< eddZe	e
 ed< eddZeed< dd	d
Zdee
ef dee
ef fddZdededefddZdS )CallableObjectcallbackF)init	awaitableparamsvarkwreturnNc                 C   sN   t | j}t |pt || _t |}h |j|j| _	|j
d u| _
d S N)inspectunwrapr   isawaitableiscoroutinefunctionr   getfullargspecargs
kwonlyargsr   r   )selfr   spec r"   o/var/www/www-root/data/www/ai-bot.pdev.uz/venv/lib/python3.10/site-packages/aiogram/dispatcher/event/handler.py__post_init__   s
   
zCallableObject.__post_init__kwargsc                    s   | j r S  fdd| jD S )Nc                    s   i | ]}| v r| | qS r"   r"   ).0kr%   r"   r#   
<dictcomp>&   s    z2CallableObject._prepare_kwargs.<locals>.<dictcomp>)r   r   )r    r%   r"   r(   r#   _prepare_kwargs"   s   zCallableObject._prepare_kwargsr   c                    s`   t | jg|R i | |}| jr| I d H S t }t }t |j|}|	d |I d H S r   )
r   r   r*   r   asyncioget_event_loopcontextvarscopy_contextrunrun_in_executor)r    r   r%   wrappedloopcontextr"   r"   r#   call(   s   zCallableObject.callr   N)__name__
__module____qualname__CallbackType__annotations__r   r   boolr   r
   strr   r$   r   r   r*   r4   r"   r"   r"   r#   r      s   
 
"r   c                       s0   e Zd ZU dZee ed< d fddZ  ZS )FilterObjectNmagicr   c                    sb   t | jtr| j| _| jj| _t | jtstjtddd t	t
|   t | jtr/d| _d S d S )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   OriginalMagicFilterr>   resolver   warningswarnr   superr=   r$   r   r   )r    	__class__r"   r#   r$   7   s   
	
zFilterObject.__post_init__r5   )	r6   r7   r8   r>   r	   r   r:   r$   __classcell__r"   r"   rI   r#   r=   3   s   
 r=   c                
       st   e Zd ZU dZeee  ed< ee	dZ
eeef ed< d fddZded	edeeeeef f fd
dZ  ZS )HandlerObjectNfilters)default_factoryflagsr   c                    sH   t t|   t| j}t|rt|trd| _	| j
t| d S )NT)rH   rL   r$   r   r   r   isclass
issubclassr   r   rO   updater   )r    r   rI   r"   r#   r$   S   s
   zHandlerObject.__post_init__r   r%   c                    s^   | j sd|fS | j D ]}|j|i |I d H }|s d|f  S t|tr*|| qd|fS )NTF)rM   r4   rC   dictrR   )r    r   r%   event_filtercheckr"   r"   r#   rU   Z   s   


zHandlerObject.checkr5   )r6   r7   r8   rM   r	   r   r=   r:   r   rS   rO   r   r<   r   r$   r   r;   rU   rK   r"   r"   rI   r#   rL   N   s
   
 .rL   )!r+   r-   r   rF   dataclassesr   r   	functoolsr   typingr   r   r   r   r	   r
   r   magic_filter.magicr   rD   aiogram.dispatcher.flagsr   aiogram.filters.baser   aiogram.handlersr   aiogram.utils.magic_filteraiogram.utils.warningsr   r9   r   r=   rL   r"   r"   r"   r#   <module>   s(    $