|
@@ -1,5 +1,6 @@
|
|
|
from src.models.abstract_reference import abstract_reference
|
|
|
from src.errors.argument_exception import argument_exception
|
|
|
+from src.validation.validator import validator
|
|
|
|
|
|
class measurement_unit_model (abstract_reference):
|
|
|
# Базовая единица измерения
|
|
@@ -7,26 +8,19 @@ class measurement_unit_model (abstract_reference):
|
|
|
# Базовый коэффициент
|
|
|
__base_coefficient = None
|
|
|
|
|
|
- def __init__(self, base_coefficient, base_measurement=None):
|
|
|
+ def __init__(self, base_coefficient = 1, base_measurement=None):
|
|
|
"""
|
|
|
Args:
|
|
|
base_measurement (measurement_unit_model): Базовая единица измерения
|
|
|
base_coefficint (number): Базовый коэффициент
|
|
|
"""
|
|
|
- # Проверяем чтоды base_measurement был типа measurement_unit_model либо None (self-ref)
|
|
|
- if not isinstance(base_measurement, measurement_unit_model)\
|
|
|
- and base_measurement is not None:
|
|
|
- raise argument_exception(
|
|
|
- "Базовая единица измерения должна быть типа measurement_unit_model")
|
|
|
- # Присваиваем self-ref когда не передан base_measurement
|
|
|
- if base_measurement is None:
|
|
|
- self.__base_measurement_unit = self
|
|
|
- else: self.__base_measurement_unit = base_measurement
|
|
|
- try:
|
|
|
- # Пробуем конвертировать коэффициент во float
|
|
|
- self.__base_coefficient = float(base_coefficient)
|
|
|
- except TypeError as e:
|
|
|
- raise argument_exception("Несоответствие типа базового коэффициента")
|
|
|
+
|
|
|
+ validator.check_type_any(base_measurement, measurement_unit_model, None)
|
|
|
+ validator.check_number(base_measurement)
|
|
|
+
|
|
|
+ self.__base_measurement_unit = base_measurement
|
|
|
+ self.__base_coefficient = base_coefficient
|
|
|
+
|
|
|
|
|
|
@property
|
|
|
def base_measurement_unit(self):
|
|
@@ -34,6 +28,9 @@ class measurement_unit_model (abstract_reference):
|
|
|
Базовая единица измерения
|
|
|
"""
|
|
|
|
|
|
+ if self.__base_measurement_unit is None:
|
|
|
+ return self
|
|
|
+
|
|
|
return self.__base_measurement_unit
|
|
|
|
|
|
@property
|