Перейти к содержанию

Генерация шаблонов (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

Редактор будет автоматически подсвечивать ошибки и предлагать автодополнение для всех ключей конфигурации.