Генерация шаблонов (chutils template)
Команда chutils template позволяет автоматически генерировать документированные файлы конфигурации (config.yml),
файлы переменных окружения (.env) или JSON-схемы на основе структуры вашей Pydantic-модели.
Это устраняет ручную работу по синхронизации кода настроек с конфигурационными файлами.
Синтаксис
chutils template [-h] -m MODEL [-f {yaml,env,json-schema}] [-o OUTPUT]
Параметры и флаги:
| Флаг | Полное имя | Описание | Обязательный |
|---|---|---|---|
-m |
--model |
Путь к Pydantic-модели (например, myapp.config:Settings). |
Да |
-f |
--format |
Формат выходных данных: yaml, env или json-schema. По умолчанию: yaml. |
Нет |
-o |
--output |
Путь к файлу для сохранения результата. Если не указан, результат выводится в стандартный поток вывода (консоль). | Нет |
Примеры использования
1. Генерация YAML-шаблона с комментариями
YAML-шаблон генерируется на основе полей Pydantic. Свойства description у полей Pydantic автоматически преобразуются в
комментарии над ключами.
chutils template -m myapp.config:Settings -f yaml
Вывод в консоли:
# Хост для подключения к базе данных
db_host: localhost
# Порт для подключения к базе данных
db_port: 5432
2. Генерация шаблона .env файла
Полезно для настройки окружения в Docker или CI/CD. Переменные вложенных секций автоматически преобразуются в плоский
формат верхнего регистра с разделителем __ (double underscore).
chutils template -m myapp.config:Settings -f env -o .env.template
Содержимое созданного файла .env.template:
DB_HOST=localhost
DB_PORT=5432
LOGGING__LEVEL=INFO
3. Экспорт JSON Schema
Экспортирует JSON-схему для настройки автодополнения и валидации прямо в редакторе (VS Code / PyCharm).
chutils template -m myapp.config:Settings -f json-schema -o schema.json
Интеграция с IDE через JSON Schema
После генерации схемы вы можете связать её с вашим config.yml в редакторе, добавив в начало конфигурационного файла
специальную директиву:
# yaml-language-server: $schema=./schema.json
Database:
host: localhost
port: 5432
Редактор будет автоматически подсвечивать ошибки и предлагать автодополнение для всех ключей конфигурации.