a
    y{JhY  ã                   @  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                   @  s¤   e Zd Zddœdd„Zdddœdd„Zdddœd	d
„Zd!dddœdd„Zedddœdd„ƒZedddœdd„ƒZdddœdd„Zddœdd„Z	ddddœdd „Z
dS )"ÚRequestMiddlewareManagerÚNone)Úreturnc                 C  s
   g | _ d S ©N©Ú_middlewares©Úself© r   ú\/var/www/shaz/venv/lib/python3.9/site-packages/aiogram/client/session/middlewares/manager.pyÚ__init__   s    z!RequestMiddlewareManager.__init__r   )Ú
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.unregisterNzOptional[RequestMiddlewareType]zVUnion[Callable[[RequestMiddlewareType], RequestMiddlewareType], RequestMiddlewareType]c                 C  s   |d u r| j S |   |¡S r   )r   r   r   r   r   Ú__call__   s    z!RequestMiddlewareManager.__call__Úint)Úitemr   c                 C  s   d S r   r   ©r   r"   r   r   r   Ú__getitem__#   s    z$RequestMiddlewareManager.__getitem__ÚslicezSequence[RequestMiddlewareType]c                 C  s   d S r   r   r#   r   r   r   r$   '   s    zUnion[int, slice]z=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__0   s    z RequestMiddlewareManager.__len__z'NextRequestMiddlewareType[TelegramType]r   )ÚcallbackÚkwargsr   c                 K  s8   t |fi |¤Ž}t| jƒD ]}t ||ƒ}qttt |ƒS r   )r   Úreversedr   r
   r   r   )r   r(   r)   r   Úmr   r   r   Úwrap_middlewares3   s    z)RequestMiddlewareManager.wrap_middlewares)N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r    r   r$   r'   r,   r   r   r   r   r      s    þr   N)Ú
__future__r   Ú	functoolsr   Útypingr   r   r   r   r   r	   r
   r   Z'aiogram.client.session.middlewares.baser   r   Zaiogram.methods.baser   r   r   r   r   r   Ú<module>   s
   (