Валидация конфигурации (chutils validate)
Команда chutils validate используется для проверки корректности текущих конфигурационных файлов (включая локальные
переопределения и переменные окружения) с помощью ваших Pydantic-моделей.
Это позволяет обнаружить опечатки, пропущенные обязательные параметры или неверные типы данных еще до старта приложения.
Синтаксис
chutils validate [-h] [-m MODEL]
Параметры и флаги:
| Флаг | Полное имя | Описание | Обязательный |
|---|---|---|---|
-m |
--model |
Путь к Pydantic-модели (например, myapp.config:Settings). Если флаг не передан, chutils автоматически попытается найти класс с именем Settings в файлах context.py или config.py вашего проекта. |
Нет |
Как это работает?
Утилита:
- Загружает и объединяет все доступные конфигурационные файлы (
config.yml->config.local.yml-> ENV). - Динамически импортирует указанный класс Pydantic-модели.
- Передает собранные данные в конструктор модели для валидации.
- Возвращает статус проверки и соответствующий код выхода (Exit Code):
0— Конфигурация полностью валидна.1— Обнаружены ошибки валидации (ValidationError) или проблемы с импортом модели.
Примеры использования
1. Успешная валидация (автоопределение модели)
Если в корне проекта или в папке src/ есть файл config.py с классом Settings:
chutils validate
Вывод в консоли (зеленым):
[OK] Конфигурация успешно прошла валидацию по модели 'src.config:Settings'.
2. Ошибка валидации (неверный тип данных или пропущенное поле)
Если в config.yml указано строковое значение для целочисленного поля или пропущен обязательный параметр:
chutils validate -m app.settings:AppConfig
Вывод в консоли (красным):
[ERROR] Ошибка валидации конфигурации:
1 validation error for AppConfig
Database.port
Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='not_a_port', input_type=str]
(Exit code: 1)
Связанные команды
config debug— Позволяет интерактивно посмотреть, из каких источников (файлов или ENV) применилось то или иное неверное значение.template schema— Сгенерировать JSON Schema на базе модели для автодополнения в IDE.