a
    9g/                     @   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	d
Zee
ef ee
ef dddZeeedddZdS )CallableObjectcallbackF)init	awaitableparamsvarkwNreturnc                 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#   }/var/www/vosh/data/www/fastworkle.ru/webshop-tgbot-v.1.0/venv/lib/python3.9/site-packages/aiogram/dispatcher/event/handler.py__post_init__   s
    
zCallableObject.__post_init__)kwargsr   c                    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>&       z2CallableObject._prepare_kwargs.<locals>.<dictcomp>)r   r   )r!   r&   r#   r)   r$   _prepare_kwargs"   s    zCallableObject._prepare_kwargsr   r&   r   c                    s^   t | jg|R i | |}| jr0| I d H S t }t }t |j|}|	d |I d H S r   )
r   r   r,   r   asyncioZget_event_loopcontextvarsZcopy_contextrunZrun_in_executor)r!   r   r&   wrappedZloopcontextr#   r#   r$   call(   s    zCallableObject.call)__name__
__module____qualname__CallbackType__annotations__r   r   boolr   r
   strr   r%   r   r   r,   r3   r#   r#   r#   r$   r      s   
 r   c                       s4   e Zd ZU dZee ed< dd fddZ  ZS )FilterObjectNmagicr   c                    s^   t | jtr:| j| _| jj| _t | jts:tjtddd t	t
|   t | jtrZd| _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__)	r4   r5   r6   r<   r	   r   r8   r%   __classcell__r#   r#   rG   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d fddZeeeeeeef f dd	d
Z  ZS )HandlerObjectNfilters)default_factoryflagsr   c                    sH   t t|   t| j}t|r4t|tr4d| _	| j
t| d S )NT)rF   rJ   r%   r   r   r   isclass
issubclassr   r   rM   updater   )r!   r   rG   r#   r$   r%   S   s
    zHandlerObject.__post_init__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)rK   r3   rA   dictrP   )r!   r   r&   Zevent_filtercheckr#   r#   r$   rR   Z   s    

zHandlerObject.check)r4   r5   r6   rK   r	   r   r;   r8   r   rQ   rM   r   r:   r   r%   r   r9   rR   rI   r#   r#   rG   r$   rJ   N   s   
rJ   )!r.   r/   r   rD   Zdataclassesr   r   	functoolsr   typingr   r   r   r   r	   r
   r   Zmagic_filter.magicr   rB   Zaiogram.dispatcher.flagsr   Zaiogram.filters.baser   Zaiogram.handlersr   Zaiogram.utils.magic_filterZaiogram.utils.warningsr   r7   r   r;   rJ   r#   r#   r#   r$   <module>   s&   $