
    F˝ir                     z    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ee	e            Zy)	    N)CallableSequence)Anyoverload)MiddlewareEventTypeMiddlewareTypeNextMiddlewareType)CallbackType)TelegramObjectc                   :   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   dz  deee   gee   f   ee   z  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z  dee   eee      z  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    _/home/leshdev/mybot/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__5   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$   )r0   r1   r.   s     r   handler_wrapperz;MiddlewareManager.wrap_middlewares.<locals>.handler_wrapper=   s    5+F++r   )	functoolswrapsr   dictstrr   reversedpartial)r-   r.   r3   r   ms    `   r   wrap_middlewaresz"MiddlewareManager.wrap_middlewares8   sp    
 
	!	,> 	,4S> 	,c 	, 
"	, %
+& 	:A"**1j9J	:r   )r   Nr   )__name__
__module____qualname__r   r   r   r   r   r   r!   r   intr&   slicer   r,   staticmethodr   r
   r	   r;   r$   r   r   r   r      sY   E">2 
	'-^N%C - -
 =A	)">2T9	) 	.01>.3QQR

(	)		)  ~(F    (>.3Q*R  'Ek' 
	'(>.3Q*R	R'& & n-@AB 
/	0 r   r   )r4   collections.abcr   r   typingr   r   aiogram.dispatcher.event.basesr   r   r	    aiogram.dispatcher.event.handlerr
   aiogram.typesr   r   r$   r   r   <module>rG      s6     .   
 : (6!?@ 6r   