from .proxy import proxy from .model import model class single_set_proxy(proxy): def set(self, target: str) -> None: self._target.content = target def get(self) -> str: return self._target.content def __init_subclass__(cls, target_model: type) -> None: super().__init_subclass__() if not issubclass(target_model, model): raise TypeError("Target must be subclass of single_set_model.") cls.__target_model = target_model @classmethod def create(cls, content: str) -> proxy: return cls(cls.__target_model(content = content))