|  | @@ -1,4 +1,5 @@
 | 
											
												
													
														|  |  import re
 |  |  import re
 | 
											
												
													
														|  | 
 |  | +from numbers import Number
 | 
											
												
													
														|  |  from src.errors.argument_exception import argument_exception
 |  |  from src.errors.argument_exception import argument_exception
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  class validator:
 |  |  class validator:
 | 
											
										
											
												
													
														|  | @@ -9,7 +10,7 @@ class validator:
 | 
											
												
													
														|  |              value (any): Передаваемый аргумент
 |  |              value (any): Передаваемый аргумент
 | 
											
												
													
														|  |              type(Type): Ожидаемый тип
 |  |              type(Type): Ожидаемый тип
 | 
											
												
													
														|  |          Raises:
 |  |          Raises:
 | 
											
												
													
														|  | -            TypeError: Некорректный тип аргумента
 |  | 
 | 
											
												
													
														|  | 
 |  | +            argument_exception: Некорректный тип аргумента
 | 
											
												
													
														|  |          """
 |  |          """
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          if not isinstance(value, exp_type):
 |  |          if not isinstance(value, exp_type):
 | 
											
										
											
												
													
														|  | @@ -24,7 +25,7 @@ class validator:
 | 
											
												
													
														|  |              value (any): Передаваемый аргумент
 |  |              value (any): Передаваемый аргумент
 | 
											
												
													
														|  |              length (int): Ожидаемая длина
 |  |              length (int): Ожидаемая длина
 | 
											
												
													
														|  |          Raises:
 |  |          Raises:
 | 
											
												
													
														|  | -            ValueError: Несоответствующая длина аргумента
 |  | 
 | 
											
												
													
														|  | 
 |  | +            argument_exception: Несоответствующая длина аргумента
 | 
											
												
													
														|  |          """
 |  |          """
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          if isinstance(value, int):
 |  |          if isinstance(value, int):
 | 
											
										
											
												
													
														|  | @@ -43,7 +44,7 @@ class validator:
 | 
											
												
													
														|  |              length (int): Максимальная допустимая длина
 |  |              length (int): Максимальная допустимая длина
 | 
											
												
													
														|  |              inclusive (bool): Сравнивать включительно? default=True
 |  |              inclusive (bool): Сравнивать включительно? default=True
 | 
											
												
													
														|  |          Raises:
 |  |          Raises:
 | 
											
												
													
														|  | -            ValueError: Превышена длина аргумента
 |  | 
 | 
											
												
													
														|  | 
 |  | +            argument_exception: Превышена длина аргумента
 | 
											
												
													
														|  |          """
 |  |          """
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          if value is int:
 |  |          if value is int:
 | 
											
										
											
												
													
														|  | @@ -63,7 +64,7 @@ class validator:
 | 
											
												
													
														|  |              length (int): Максимальная допустимая длина
 |  |              length (int): Максимальная допустимая длина
 | 
											
												
													
														|  |              inclusive (bool): Сравнивать включительно? default=True
 |  |              inclusive (bool): Сравнивать включительно? default=True
 | 
											
												
													
														|  |          Raises:
 |  |          Raises:
 | 
											
												
													
														|  | -            ValueError: Недостаточная длина аргумента
 |  | 
 | 
											
												
													
														|  | 
 |  | +            argument_exception: Недостаточная длина аргумента
 | 
											
												
													
														|  |          """
 |  |          """
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          if value is int:
 |  |          if value is int:
 | 
											
										
											
												
													
														|  | @@ -85,8 +86,8 @@ class validator:
 | 
											
												
													
														|  |              inclusive_min (bool): Сравнимать минимальную длину включительно? default=True
 |  |              inclusive_min (bool): Сравнимать минимальную длину включительно? default=True
 | 
											
												
													
														|  |              inclusive_max (bool): Сравнивать максимальную длину включительно? default=True
 |  |              inclusive_max (bool): Сравнивать максимальную длину включительно? default=True
 | 
											
												
													
														|  |          Raises:
 |  |          Raises:
 | 
											
												
													
														|  | -            ValueError: Недостаточная длина аргумента
 |  | 
 | 
											
												
													
														|  | -            ValueError: Превышена длина аргумента
 |  | 
 | 
											
												
													
														|  | 
 |  | +            argument_exception: Недостаточная длина аргумента
 | 
											
												
													
														|  | 
 |  | +            argument_exception: Превышена длина аргумента
 | 
											
												
													
														|  |          """
 |  |          """
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          self.check_length_less(value, max_length, inclusive_max)
 |  |          self.check_length_less(value, max_length, inclusive_max)
 | 
											
										
											
												
													
														|  | @@ -102,8 +103,8 @@ class validator:
 | 
											
												
													
														|  |              exp_type (Type): Ожидаемый тип
 |  |              exp_type (Type): Ожидаемый тип
 | 
											
												
													
														|  |              length (int): Ожидаемая длина
 |  |              length (int): Ожидаемая длина
 | 
											
												
													
														|  |          Raises:
 |  |          Raises:
 | 
											
												
													
														|  | -            TypeError: Несоответствие типа аргумента
 |  | 
 | 
											
												
													
														|  | -            ValueError: Несоответствие длины аргумента
 |  | 
 | 
											
												
													
														|  | 
 |  | +            argument_exception: Несоответствие типа аргумента
 | 
											
												
													
														|  | 
 |  | +            argument_exception: Несоответствие длины аргумента
 | 
											
												
													
														|  |          """
 |  |          """
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          self.check_type(value, exp_type)
 |  |          self.check_type(value, exp_type)
 | 
											
										
											
												
													
														|  | @@ -118,10 +119,24 @@ class validator:
 | 
											
												
													
														|  |              value (any): Передаваемый аргумент
 |  |              value (any): Передаваемый аргумент
 | 
											
												
													
														|  |              expression (str): Регулярное выражение
 |  |              expression (str): Регулярное выражение
 | 
											
												
													
														|  |          Raises:
 |  |          Raises:
 | 
											
												
													
														|  | -            ValueError: Аргумент не соответствует регулярному выражению
 |  | 
 | 
											
												
													
														|  | 
 |  | +            argument_exception: Аргумент не соответствует регулярному выражению
 | 
											
												
													
														|  |          """
 |  |          """
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          if re.match(expression, value) is None:
 |  |          if re.match(expression, value) is None:
 | 
											
												
													
														|  |              raise argument_exception(f"Аргумент не соответствует регулярному выражению ({str(value)}, regex: {expression})")
 |  |              raise argument_exception(f"Аргумент не соответствует регулярному выражению ({str(value)}, regex: {expression})")
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          return True
 |  |          return True
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    def check_number(self, value):
 | 
											
												
													
														|  | 
 |  | +        """
 | 
											
												
													
														|  | 
 |  | +            Валидация аргумента по соответствию типу Число
 | 
											
												
													
														|  | 
 |  | +        Args:
 | 
											
												
													
														|  | 
 |  | +            value: Передаваемый аргумент
 | 
											
												
													
														|  | 
 |  | +        Raises:
 | 
											
												
													
														|  | 
 |  | +            argument_exception: Аргумент не является числом
 | 
											
												
													
														|  | 
 |  | +        """
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        if not isinstance(value, Number):
 | 
											
												
													
														|  | 
 |  | +            raise argument_exception(f"Аргумент не является числом (type={type(value)})")
 | 
											
												
													
														|  | 
 |  | +        
 | 
											
												
													
														|  | 
 |  | +        return True
 |