1
1

abstract_reference.py 1.2 KB

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