Validators
Для создания собственного валидатора необходимо унаследовать класс от BaseValidator и указать целевой тип данных в квадратных скобках при наследовании, а также переопределить два статических метода: validate() и convert().
В качестве имени кастомного валидатора рекомендуется использовать CustomValidator_{TYPE}, что позволяет извлекать тип при генерации исключений.
Любой валидатор наследует также метод parse(), автоматически валидирующий и приводящий значение к нужному типу, а в случае ошибки выбрасывающий исключение типа ValidationError.
Создание
from dublib.CLI.Validators import BaseValidator
class CustomValidator_ExampleBool(BaseValidator[bool]):
@staticmethod
def convert(value: str) -> bool:
value = value.lower()
if value in ("true",): return True
return False
@staticmethod
def validate(value: str) -> bool:
Buffer = value.lower()
return Buffer in ("true", "false")
Использование
После создания кастомного валидатора его можно использовать в Terminalyzer как указатель ожидаемого типа параметра.
from dublib.CLI.Terminalyzer import Terminalyzer, Command, ValidableTypes
from enum import Enum
class CustomValidableTypes(ValidableTypes):
ExampleBool = CustomValidator_ExampleBool
Commands = list()
Com = Command("example")
Com.base.add_argument(CustomValidableTypes.ExampleBool)
Commands.append(Com)
# Дальнейшая обработка через Terminalyzer...
Представленные типы
- class dublib.CLI.Validators.BaseValidator[исходный код]
Базовый валидатор строки.
- abstractmethod static convert(value: str) _PARSED_VALUE[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
Any
- classmethod parse(value: str) _PARSED_VALUE[исходный код]
Проводит валидацию строки и преобразует её в целевой тип.
- Параметры:
value (str) – Обрабатываемая строка.
- Результат:
Результат преобразования.
- Тип результата:
Any
- abstractmethod static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.ValidableTypes(*values)[исходный код]
Перечисление типов валидаторов.
- class dublib.CLI.Validators.Validator_All[исходный код]
- static convert(value: str) str[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
str
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_Alpha[исходный код]
- static convert(value: str) str[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
str
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_Base64[исходный код]
- static convert(value: str) str[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
str
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_Bool[исходный код]
- static convert(value: str) bool[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
bool
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_Datetime[исходный код]
- static convert(value: str) datetime[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
datetime
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_Email[исходный код]
- static convert(value: str) str[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
str
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_Float[исходный код]
- static convert(value: str) float[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
float
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_IPv4[исходный код]
- static convert(value: str) str[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
str
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_IPv6[исходный код]
- static convert(value: str) str[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
str
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_Integer[исходный код]
- static convert(value: str) int[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
int
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_Number[исходный код]
- static convert(value: str) float | int[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
float | int
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_Path[исходный код]
- static convert(value: str) Path[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
Path
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_URL[исходный код]
- static convert(value: str) str[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
str
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_UnsignedInteger[исходный код]
- static convert(value: str) int[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
int
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool
- class dublib.CLI.Validators.Validator_ValidPath[исходный код]
- static convert(value: str) Path[исходный код]
Конвертирует строку в значение определённого типа.
- Параметры:
value (str) – Конвертируемая строка.
- Результат:
Конвертированное значение.
- Тип результата:
Path
- static validate(value: str) bool[исходный код]
Проверяет, соответствует ли строка критериям валидируемого типа.
- Параметры:
value (str) – Проверяемая строка.
- Результат:
Возвращает True, если строка является валидным значением типа.
- Тип результата:
bool