o
    FÆho  ã                   @  st   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„ de	e ƒZdS )	é    )Úannotations)Úpartial)ÚAnyÚCallableÚListÚOptionalÚSequenceÚUnionÚcastÚoverload)ÚNextRequestMiddlewareTypeÚRequestMiddlewareType)ÚTelegramTypec                   @  sr   e Zd Zd"dd„Zd#dd„Zd$d	d
„Z	d%d&dd„Zed'dd„ƒZed(dd„ƒZd)dd„Zd*dd„Z	d+d d!„Z
dS ),ÚRequestMiddlewareManagerÚreturnÚNonec                 C  s
   g | _ d S ©N©Ú_middlewares©Úself© r   ú]/var/www/html/venv/lib/python3.10/site-packages/aiogram/client/session/middlewares/manager.pyÚ__init__   ó   
z!RequestMiddlewareManager.__init__Ú
middlewarer   c                 C  s   | j  |¡ |S r   )r   Úappend©r   r   r   r   r   Úregister   s   z!RequestMiddlewareManager.registerc                 C  s   | j  |¡ d S r   )r   Úremover   r   r   r   Ú
unregister   s   z#RequestMiddlewareManager.unregisterNúOptional[RequestMiddlewareType]úVUnion[Callable[[RequestMiddlewareType], RequestMiddlewareType], RequestMiddlewareType]c                 C  s   |d u r| j S |   |¡S r   )r   r   r   r   r   Ú__call__   s   
z!RequestMiddlewareManager.__call__ÚitemÚintc                 C  ó   d S r   r   ©r   r$   r   r   r   Ú__getitem__&   ó   z$RequestMiddlewareManager.__getitem__ÚsliceúSequence[RequestMiddlewareType]c                 C  r&   r   r   r'   r   r   r   r(   *   r)   úUnion[int, slice]ú=Union[RequestMiddlewareType, Sequence[RequestMiddlewareType]]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   r   z RequestMiddlewareManager.__len__Úcallbackú'NextRequestMiddlewareType[TelegramType]Úkwargsr   c                 K  s8   t |fi |¤Ž}t| jƒD ]}t ||ƒ}qttt |ƒS r   )r   Úreversedr   r
   r   r   )r   r0   r2   r   Úmr   r   r   Úwrap_middlewares6   s   z)RequestMiddlewareManager.wrap_middlewares)r   r   )r   r   r   r   )r   r   r   r   r   )r   r!   r   r"   )r$   r%   r   r   )r$   r*   r   r+   )r$   r,   r   r-   )r   r%   )r0   r1   r2   r   r   r1   )Ú__name__Ú
__module__Ú__qualname__r   r   r    r#   r   r(   r/   r5   r   r   r   r   r      s    


þ

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   r   Ú<module>   s    (