o
    ¥LDir  ã                   @   sp   d dl Z d dlmZmZ d dlmZmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ G dd„ dee	e  ƒZdS )	é    N)ÚCallableÚSequence)ÚAnyÚoverload)ÚMiddlewareEventTypeÚMiddlewareTypeÚNextMiddlewareType)ÚCallbackType)ÚTelegramObjectc                   @   s  e Zd Zddd„Zdee dee fdd„Zdee ddfdd	„Z	ddee dB deee gee f ee B fd
d„Z	e
dedee fdd„ƒZe
dedeee  fdd„ƒZdeeB dee eee  B fdd„Zdefdd„Zedeee  dedee fdd„ƒZdS )ÚMiddlewareManagerÚreturnNc                 C   s
   g | _ d S ©N©Ú_middlewares©Úself© r   úr/var/www/www-root/data/www/77.83.87.30/venv/lib/python3.10/site-packages/aiogram/dispatcher/middlewares/manager.pyÚ__init__   ó   
zMiddlewareManager.__init__Ú
middlewarec                 C   s   | j  |¡ |S r   )r   Úappend©r   r   r   r   r   Úregister   s   zMiddlewareManager.registerc                 C   s   | j  |¡ d S r   )r   Úremover   r   r   r   Ú
unregister   s   zMiddlewareManager.unregisterc                 C   s   |d u r| j S |   |¡S r   )r   r   r   r   r   Ú__call__   s   
zMiddlewareManager.__call__Úitemc                 C   ó   d S r   r   ©r   r   r   r   r   Ú__getitem__'   ó   zMiddlewareManager.__getitem__c                 C   r   r   r   r   r   r   r   r    +   r!   c                 C   s
   | j | S r   r   r   r   r   r   r    /   s   
c                 C   s
   t | jƒS r   )Úlenr   r   r   r   r   Ú__len__5   r   zMiddlewareManager.__len__ÚmiddlewaresÚhandlerc                    sN   t  ˆ ¡dtdtttf dtf‡ fdd„ƒ}|}t| ƒD ]}t  ||¡}q|S )NÚeventÚkwargsr   c                    s   ˆ | fi |¤ŽS r   r   )r&   r'   ©r%   r   r   Úhandler_wrapper=   s   z;MiddlewareManager.wrap_middlewares.<locals>.handler_wrapper)Ú	functoolsÚwrapsr
   ÚdictÚstrr   ÚreversedÚpartial)r$   r%   r)   r   Úmr   r(   r   Úwrap_middlewares8   s   $z"MiddlewareManager.wrap_middlewares)r   Nr   )Ú__name__Ú
__module__Ú__qualname__r   r   r
   r   r   r   r   r   Úintr    Úslicer   r#   Ústaticmethodr   r	   r   r1   r   r   r   r   r      sD    
þ
ýþ
þÿ
üþ
ý
ÿþýr   )r*   Úcollections.abcr   r   Útypingr   r   Úaiogram.dispatcher.event.basesr   r   r   Ú aiogram.dispatcher.event.handlerr	   Úaiogram.typesr
   r   r   r   r   r   Ú<module>   s    