Source code for aiogram.dispatcher.middlewares.base

from abc import ABC, abstractmethod
from typing import Any, Awaitable, Callable, Dict, TypeVar

from aiogram.types import TelegramObject

T = TypeVar("T")

[docs]class BaseMiddleware(ABC): """ Generic middleware class """
[docs] @abstractmethod async def __call__( self, handler: Callable[[TelegramObject, Dict[str, Any]], Awaitable[Any]], event: TelegramObject, data: Dict[str, Any], ) -> Any: # pragma: no cover """ Execute middleware :param handler: Wrapped handler in middlewares chain :param event: Incoming event (Subclass of :class:`aiogram.types.base.TelegramObject`) :param data: Contextual data. Will be mapped to handler arguments :return: :class:`Any` """ pass