lowannann's picture
2022_1013
4398510
raw
history blame
709 Bytes
from typing import Any
from enum import Enum, auto
from types import SimpleNamespace
from dataclasses import dataclass, FrozenInstanceError
class WSGKind(Enum):
ADD_WSG = auto()
RESET = auto()
class FrozenSimpleNamespace(SimpleNamespace):
def __init__(self, **kwargs):
super().__init__(**kwargs)
def __setattr__(self, name: str, value: Any) -> None:
raise FrozenInstanceError(f"cannot assign to field '{name}'")
@dataclass(frozen=True)
class Action:
"""
The Action object contains the payload of information.
"""
kind: WSGKind
payload: dict
def __post_init__(self):
super().__setattr__("payload", FrozenSimpleNamespace(**self.payload))