abstract_reference.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import uuid
  2. from abc import ABC
  3. from src.errors.error_proxy import error_proxy
  4. from src.errors.argument_exception import argument_exception
  5. from src.validation.validator import validator
  6. class abstract_reference(ABC):
  7. __id: uuid.UUID
  8. __name:str = ""
  9. __error: error_proxy = error_proxy()
  10. __vtor = validator()
  11. def __init__(self, name: str = None) -> None:
  12. self.name = name
  13. self.__id = uuid.uuid4()
  14. @property
  15. def error(self):
  16. """
  17. Работа с ошибками
  18. Returns:
  19. _type_: _description_
  20. """
  21. return self.__error
  22. @property
  23. def id(self):
  24. """
  25. Уникальный код
  26. Returns:
  27. _type_: _description_
  28. """
  29. return self.__id
  30. @property
  31. def name(self):
  32. """
  33. Наименование
  34. Returns:
  35. _type_: _description_
  36. """
  37. return self.__name.strip()
  38. @name.setter
  39. def name(self, value: str):
  40. value = value.strip()
  41. validator.check_type(value, str)
  42. validator.check_length_bound(value, 1, 50)
  43. self.__name = value