from typing import Any, Awaitable, Callable import aiogram from aiogram.types import TelegramObject class DependsMiddleware(aiogram.BaseMiddleware): def __init__(self, name: str, object_: Any): self._name = name self._object = object_ async def __call__( self, handler: Callable[[TelegramObject, dict[str, Any]], Awaitable[Any]], event: TelegramObject, data: dict[str, Any], ): data[self._name] = self._object return await handler(event, data)