field.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from .field_encoder import field_encoder
  2. from .field_decoder import field_decoder
  3. class field:
  4. def __init__(self, title: str, target: type, size: int = 4) -> None:
  5. self.__title = title
  6. self.__target_type = target
  7. self.__size = size
  8. self.__content = None
  9. self.__float_precission = 2
  10. def set_precission(self, target: int) -> object:
  11. self.__precission = target
  12. return self
  13. @property
  14. def precission(self) -> int:
  15. return self.__precission
  16. def set(self, target: any) -> object:
  17. if type(target) is not self.__target_type:
  18. raise TypeError("Field type is frong.")
  19. self.__content = target
  20. return self
  21. def get(self) -> any:
  22. return self.__content
  23. @property
  24. def size(self) -> int:
  25. return len(self)
  26. @property
  27. def title(self) -> str:
  28. return self.__title
  29. @property
  30. def target_type(self) -> type:
  31. return self.__target_type
  32. def __len__(self) -> int:
  33. return self.__size
  34. def encoder(self) -> field_encoder:
  35. return field_encoder(self)
  36. def decoder(self) -> field_decoder:
  37. return field_decoder(self)