|  | @@ -1,5 +1,6 @@
 | 
											
												
													
														|  |  from src.models.abstract_reference import abstract_reference
 |  |  from src.models.abstract_reference import abstract_reference
 | 
											
												
													
														|  |  from src.errors.argument_exception import argument_exception
 |  |  from src.errors.argument_exception import argument_exception
 | 
											
												
													
														|  | 
 |  | +from src.validation.validator import validator
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  class measurement_unit_model (abstract_reference):
 |  |  class measurement_unit_model (abstract_reference):
 | 
											
												
													
														|  |      # Базовая единица измерения
 |  |      # Базовая единица измерения
 | 
											
										
											
												
													
														|  | @@ -7,26 +8,19 @@ class measurement_unit_model (abstract_reference):
 | 
											
												
													
														|  |      # Базовый коэффициент
 |  |      # Базовый коэффициент
 | 
											
												
													
														|  |      __base_coefficient = None
 |  |      __base_coefficient = None
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -    def __init__(self, base_coefficient, base_measurement=None):
 |  | 
 | 
											
												
													
														|  | 
 |  | +    def __init__(self, base_coefficient = 1, base_measurement=None):
 | 
											
												
													
														|  |          """
 |  |          """
 | 
											
												
													
														|  |          Args:
 |  |          Args:
 | 
											
												
													
														|  |              base_measurement (measurement_unit_model): Базовая единица измерения
 |  |              base_measurement (measurement_unit_model): Базовая единица измерения
 | 
											
												
													
														|  |              base_coefficint (number): Базовый коэффициент
 |  |              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
 |  |      @property
 | 
											
												
													
														|  |      def base_measurement_unit(self):
 |  |      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
 |  |          return self.__base_measurement_unit
 | 
											
												
													
														|  |      
 |  |      
 | 
											
												
													
														|  |      @property
 |  |      @property
 |