
    dhv                         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eee            Zy)    N)AnyCallableDictListOptionalSequenceUnionoverload)MiddlewareEventTypeMiddlewareTypeNextMiddlewareType)CallbackType)TelegramObjectc            	       F   e Zd ZddZdee   dee   fdZdee   ddfdZ	 ddeee      de	e
ee   gee   f   ee   f   fdZededee   fd	       Zededeee      fd
       Zde	eef   de	ee   eee      f   fdZdefdZedeee      dedee   fd       Zy)MiddlewareManagerreturnNc                     g | _         y N_middlewaresselfs    `/var/www/netwell/bot/venv/lib/python3.12/site-packages/aiogram/dispatcher/middlewares/manager.py__init__zMiddlewareManager.__init__   s
    BD    
middlewarec                 <    | j                   j                  |       |S r   )r   appendr   r   s     r   registerzMiddlewareManager.register   s     	  ,r   c                 :    | j                   j                  |       y r   )r   remover   s     r   
unregisterzMiddlewareManager.unregister   s      ,r   c                 @    || j                   S | j                  |      S r   )r    r   s     r   __call__zMiddlewareManager.__call__   s#     == }}Z((r   itemc                      y r    r   r&   s     r   __getitem__zMiddlewareManager.__getitem__&       r   c                      y r   r(   r)   s     r   r*   zMiddlewareManager.__getitem__*   r+   r   c                      | j                   |   S r   r   r)   s     r   r*   zMiddlewareManager.__getitem__.   s       &&r   c                 ,    t        | j                        S r   )lenr   r   s    r   __len__zMiddlewareManager.__len__3   s    4$$%%r   middlewareshandlerc                     t        j                        dt        dt        t        t
        f   dt
        ffd       }|}t        |       D ]  }t        j                  ||      } |S )Neventkwargsr   c                      | fi |S r   r(   )r4   r5   r2   s     r   handler_wrapperz;MiddlewareManager.wrap_middlewares.<locals>.handler_wrapper:   s    5+F++r   )	functoolswrapsr   r   strr   reversedpartial)r1   r2   r7   r   ms    `   r   wrap_middlewaresz"MiddlewareManager.wrap_middlewares6   sp     
	!	,> 	,4S> 	,c 	, 
"	, %
+& 	:A"**1j9J	:r   )r   Nr   )__name__
__module____qualname__r   r   r   r    r#   r   r	   r   r%   r
   intr*   slicer   r0   staticmethodr   r   r   r>   r(   r   r   r   r      sh   E">2 
	'-^N%C - -
 @D	)^N;<	) 
.01>.3QQR~&	(
	)  ~(F    (>.3Q*R  '#u*%'	~n-x~8V/WW	X'
& & 
n-@AB
MY
	/	0
 
r   r   )r8   typingr   r   r   r   r   r   r	   r
   aiogram.dispatcher.event.basesr   r   r    aiogram.dispatcher.event.handlerr   aiogram.typesr   r   r(   r   r   <module>rI      s9     Q Q Q 
 : (4!?@ 4r   