Ver código fonte

Added validator.check_number()

Vsevolod Levitan 1 ano atrás
pai
commit
b9e355b1dc
1 arquivos alterados com 24 adições e 9 exclusões
  1. 24 9
      src/validation/validator.py

+ 24 - 9
src/validation/validator.py

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