Source code for aiogram.filters.magic_data
from typing import Any
from magic_filter import AttrDict, MagicFilter
from aiogram.filters.base import Filter
from aiogram.types import TelegramObject
[docs]
class MagicData(Filter):
"""
This filter helps to filter event with contextual data
"""
__slots__ = "magic_data"
def __init__(self, magic_data: MagicFilter) -> None:
self.magic_data = magic_data
async def __call__(self, event: TelegramObject, *args: Any, **kwargs: Any) -> Any:
return self.magic_data.resolve(
AttrDict({"event": event, **dict(enumerate(args)), **kwargs})
)
def __str__(self) -> str:
return self._signature_to_string(
magic_data=self.magic_data,
)