
    ho                    |    d dl mZ d dlm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 d dlmZ  G d de	e         Zy)	    )annotations)partial)AnyCallableListOptionalSequenceUnioncastoverload)NextRequestMiddlewareTypeRequestMiddlewareType)TelegramTypec                      e Zd ZddZ	 	 	 	 ddZddZ	 d	 	 	 ddZedd       Zedd       Z	 	 	 	 ddZdd	Z		 	 	 	 	 	 dd
Z
y)RequestMiddlewareManagerc                    g | _         y N_middlewaresselfs    ]/var/www/html/venv/lib/python3.12/site-packages/aiogram/client/session/middlewares/manager.py__init__z!RequestMiddlewareManager.__init__   s
    9;    c                <    | j                   j                  |       |S r   )r   appendr   
middlewares     r   registerz!RequestMiddlewareManager.register   s     	  ,r   c                :    | j                   j                  |       y r   )r   remover   s     r   
unregisterz#RequestMiddlewareManager.unregister   s      ,r   Nc                @    || j                   S | j                  |      S r   )r   r   s     r   __call__z!RequestMiddlewareManager.__call__   s#     == }}Z((r   c                     y r    r   items     r   __getitem__z$RequestMiddlewareManager.__getitem__&       r   c                     y r   r&   r'   s     r   r)   z$RequestMiddlewareManager.__getitem__*   r*   r   c                     | j                   |   S r   r   r'   s     r   r)   z$RequestMiddlewareManager.__getitem__.   s       &&r   c                ,    t        | j                        S r   )lenr   r   s    r   __len__z RequestMiddlewareManager.__len__3   s    4$$%%r   c                    t        |fi |}t        | j                        D ]  }t        ||      } t        t        t
           |      S r   )r   reversedr   r   r   r   )r   callbackkwargsr   ms        r   wrap_middlewaresz)RequestMiddlewareManager.wrap_middlewares6   sL    
 X00
$++, 	0A J/J	0-l;ZHHr   )returnNone)r   r   r6   r   )r   r   r6   r7   r   )r   zOptional[RequestMiddlewareType]r6   zVUnion[Callable[[RequestMiddlewareType], RequestMiddlewareType], RequestMiddlewareType])r(   intr6   r   )r(   slicer6   zSequence[RequestMiddlewareType])r(   zUnion[int, slice]r6   z=Union[RequestMiddlewareType, Sequence[RequestMiddlewareType]])r6   r8   )r2   'NextRequestMiddlewareType[TelegramType]r3   r   r6   r:   )__name__
__module____qualname__r   r   r"   r$   r   r)   r/   r5   r&   r   r   r   r      s    <) 
-
 7;	)3	)
	)    '%'	F'
&I9I I 
1	Ir   r   N)
__future__r   	functoolsr   typingr   r   r   r   r	   r
   r   r   'aiogram.client.session.middlewares.baser   r   aiogram.methods.baser   r   r&   r   r   <module>rC      s2    "  Q Q Q .1Ix(=> 1Ir   