Extend MagicFilter with aiogram-specific operation

This commit is contained in:
Alex Root Junior 2021-11-24 04:33:14 +02:00
parent 092b3f06f2
commit 2072b5f0eb

View file

@ -0,0 +1,20 @@
from typing import Any
from magic_filter import MagicFilter as _MagicFilter
from magic_filter.operations import BaseOperation
class AsFilterResultOperation(BaseOperation):
__slots__ = ("name",)
def __init__(self, name: str) -> None:
self.name = name
def resolve(self, value: Any, initial_value: Any) -> Any:
if value:
return {self.name: value}
class MagicFilter(_MagicFilter):
def as_(self, name: str) -> "MagicFilter":
return self._extend(AsFilterResultOperation(name=name))