single_set_model.py 860 B

1234567891011121314151617181920212223242526272829303132
  1. from .model import model
  2. from .single_set_proxy import single_set_proxy
  3. class single_set_model(model):
  4. content = NotImplemented
  5. @classmethod
  6. def get_proxy(cls) -> single_set_proxy:
  7. class model_proxy(single_set_proxy, target_model = cls):
  8. pass
  9. return model_proxy
  10. def _single_validator(self) -> callable:
  11. raise NotImplementedError()
  12. def _validators(self) -> dict:
  13. return {
  14. "content": self._single_validator()
  15. }
  16. def __new__(cls, *args, **kwargs) -> object:
  17. if cls.content == NotImplemented:
  18. raise NotImplementedError("Attribute content must be field.")
  19. super().__new__(*args, **kwargs)
  20. def __repr__(self) -> str:
  21. return type(self).__name__ + ": \"" + str(self) + "\""
  22. def __str__(self) -> str:
  23. return self.content