a
    9¶gv  ã                   @   sx   d dl Z d dlmZmZmZmZmZmZ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)ÚAnyÚCallableÚDictÚListÚOptionalÚSequenceÚUnionÚoverload)ÚMiddlewareEventTypeÚMiddlewareTypeÚNextMiddlewareType)ÚCallbackType)ÚTelegramObjectc                   @   s  e Zd Zddœdd„Zee ee dœdd„Zee ddœdd	„Zdeee  e	e
ee gee f ee f dœd
d„Zeeee dœdd„ƒZeeeee  dœdd„ƒZe	eef e	ee eee  f dœdd„Zedœdd„Zeeee  eee dœdd„ƒZdS )ÚMiddlewareManagerN)Úreturnc                 C   s
   g | _ d S ©N©Ú_middlewares©Úself© r   úƒ/var/www/vosh/data/www/fastworkle.ru/webshop-tgbot-v.1.0/venv/lib/python3.9/site-packages/aiogram/dispatcher/middlewares/manager.pyÚ__init__   s    zMiddlewareManager.__init__)Ú
middlewarer   c                 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__)Úitemr   c                 C   s   d S r   r   ©r   r    r   r   r   Ú__getitem__&   s    zMiddlewareManager.__getitem__c                 C   s   d S r   r   r!   r   r   r   r"   *   s    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__3   s    zMiddlewareManager.__len__)ÚmiddlewaresÚhandlerr   c                    sJ   t  ˆ ¡ttttf tdœ‡ fdd„ƒ}|}t| ƒD ]}t  ||¡}q4|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   r   Ústrr   ÚreversedÚpartial)r%   r&   r*   r   Úmr   r)   r   Úwrap_middlewares6   s     z"MiddlewareManager.wrap_middlewares)N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   r	   Úintr"   Úslicer   r$   Ústaticmethodr
   r   r   r1   r   r   r   r   r      s4   ý þ
ÿÿý
þþr   )r+   Útypingr   r   r   r   r   r   r   r	   Zaiogram.dispatcher.event.basesr
   r   r   Z aiogram.dispatcher.event.handlerr   Zaiogram.typesr   r   r   r   r   r   Ú<module>   s
   (