summaryrefslogtreecommitdiff
path: root/htmtl/modifier.py
blob: a771cca620dfe139e450c321830aa822a6fd9a9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from abc import abstractmethod, ABC
from typing import Any


class Modifier(ABC):
    name: str

    @abstractmethod
    def modify(self, value: Any, opts: list[Any]) -> Any:
        pass


def modifier_name(name: str):
    def wrapper(cls: type[Modifier]):
        cls.name = name

        return cls

    return wrapper