mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
fix mypy errors
This commit is contained in:
parent
b1676451f8
commit
0dfec1f24a
4 changed files with 24 additions and 18 deletions
|
|
@ -292,10 +292,13 @@ class Dispatcher(Router):
|
||||||
event: TelegramObject,
|
event: TelegramObject,
|
||||||
**kwargs: Any,
|
**kwargs: Any,
|
||||||
) -> Any:
|
) -> Any:
|
||||||
if self.tracer is None:
|
if (
|
||||||
|
self.tracer is None
|
||||||
|
or (tracer_manager := self.tracer.get_trigger_span_manager(event)) is None
|
||||||
|
):
|
||||||
return await super()._propagate_event(observer, update_type, event, **kwargs)
|
return await super()._propagate_event(observer, update_type, event, **kwargs)
|
||||||
|
|
||||||
async with self.tracer.get_trigger_span_manager(event):
|
async with tracer_manager:
|
||||||
return await super()._propagate_event(observer, update_type, event, **kwargs)
|
return await super()._propagate_event(observer, update_type, event, **kwargs)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
|
||||||
|
|
@ -136,10 +136,12 @@ class TelegramEventObserver:
|
||||||
handler_manager := tracer_instance.get_handler_span_manager(handler)
|
handler_manager := tracer_instance.get_handler_span_manager(handler)
|
||||||
):
|
):
|
||||||
|
|
||||||
@functools.wraps(handler.callback)
|
@functools.wraps(handler.call)
|
||||||
async def handler_wrapper(event, **kwargs):
|
async def handler_wrapper(
|
||||||
|
event: TelegramObject, *args: Any, **kwargs: Any
|
||||||
|
) -> Any:
|
||||||
async with handler_manager: # noqa: B023
|
async with handler_manager: # noqa: B023
|
||||||
return await handler.call(event, **kwargs) # noqa: B023
|
return await handler.call(event, *args, **kwargs) # noqa: B023
|
||||||
|
|
||||||
handler_call = handler_wrapper
|
handler_call = handler_wrapper
|
||||||
wrapped_inner = self.outer_middleware.wrap_middlewares(
|
wrapped_inner = self.outer_middleware.wrap_middlewares(
|
||||||
|
|
|
||||||
|
|
@ -58,15 +58,15 @@ class MiddlewareManager(Sequence[MiddlewareType[TelegramObject]]):
|
||||||
async def middleware_step(
|
async def middleware_step(
|
||||||
tracer_instance: AbstractTracer,
|
tracer_instance: AbstractTracer,
|
||||||
middleware: MiddlewareType[TelegramObject],
|
middleware: MiddlewareType[TelegramObject],
|
||||||
handler,
|
handler: CallbackType,
|
||||||
event: TelegramObject,
|
event: TelegramObject,
|
||||||
data,
|
kwargs: dict[str, Any],
|
||||||
) -> Any:
|
) -> Any:
|
||||||
manager = tracer_instance.get_middleware_span_manager(middleware)
|
manager = tracer_instance.get_middleware_span_manager(middleware)
|
||||||
if manager is None:
|
if manager is None:
|
||||||
return await middleware(handler, event, data)
|
return await middleware(handler, event, kwargs)
|
||||||
async with manager:
|
async with manager:
|
||||||
return await middleware(handler, event, data)
|
return await middleware(handler, event, kwargs)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def wrap_middlewares(
|
def wrap_middlewares(
|
||||||
|
|
@ -80,10 +80,10 @@ class MiddlewareManager(Sequence[MiddlewareType[TelegramObject]]):
|
||||||
tracer_instance = tracer.get()
|
tracer_instance = tracer.get()
|
||||||
if tracer_instance is None:
|
if tracer_instance is None:
|
||||||
for m in reversed(middlewares):
|
for m in reversed(middlewares):
|
||||||
middleware = functools.partial(m, middleware)
|
middleware = functools.partial(m, middleware) # type: ignore[assignment]
|
||||||
else:
|
else:
|
||||||
for m in reversed(middlewares):
|
for m in reversed(middlewares):
|
||||||
middleware = functools.partial(
|
middleware = functools.partial( # type: ignore[assignment]
|
||||||
MiddlewareManager.middleware_step, tracer_instance, m, middleware
|
MiddlewareManager.middleware_step, tracer_instance, m, middleware
|
||||||
)
|
)
|
||||||
return middleware
|
return middleware
|
||||||
|
|
|
||||||
|
|
@ -5,35 +5,36 @@ from contextlib import AbstractAsyncContextManager
|
||||||
from contextvars import ContextVar
|
from contextvars import ContextVar
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
from aiogram.dispatcher.event.bases import MiddlewareEventType, MiddlewareType
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from aiogram import BaseMiddleware
|
from aiogram.dispatcher.event.handler import HandlerObject
|
||||||
from aiogram.dispatcher.event.handler import CallbackType, HandlerObject
|
|
||||||
from aiogram.types import TelegramObject
|
from aiogram.types import TelegramObject
|
||||||
|
|
||||||
|
|
||||||
class AbstractTracer(ABC):
|
class AbstractTracer(ABC):
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def get_middleware_span_manager(
|
def get_middleware_span_manager(
|
||||||
self, middleware: BaseMiddleware
|
self, middleware: MiddlewareType[MiddlewareEventType]
|
||||||
) -> AbstractAsyncContextManager | None:
|
) -> AbstractAsyncContextManager[None] | None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def get_handler_span_manager(
|
def get_handler_span_manager(
|
||||||
self, handler: HandlerObject
|
self, handler: HandlerObject
|
||||||
) -> AbstractAsyncContextManager | None:
|
) -> AbstractAsyncContextManager[None] | None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def get_trigger_span_manager(
|
def get_trigger_span_manager(
|
||||||
self, event: TelegramObject
|
self, event: TelegramObject
|
||||||
) -> AbstractAsyncContextManager | None:
|
) -> AbstractAsyncContextManager[None] | None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def get_filter_span_manager(
|
def get_filter_span_manager(
|
||||||
self, handler: HandlerObject
|
self, handler: HandlerObject
|
||||||
) -> AbstractAsyncContextManager | None:
|
) -> AbstractAsyncContextManager[None] | None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue