Инициализация проекта (chutils init)
Команда chutils init предназначена для быстрого развертывания базовой инфраструктуры конфигурации и логирования в
новом или существующем проекте.
Она автоматически находит корень проекта, создает стартовый конфигурационный файл config.yml, настраивает
игнорирование чувствительных файлов в .gitignore и служебных файлов в .chutilsignore, а также подготавливает
директории для логов.
Синтаксис
chutils init [-h] [-y] [-m MODEL]
Параметры и флаги:
| Флаг | Полное имя | Описание | Обязательный |
|---|---|---|---|
-y |
--yes |
Автоматически отвечать "Да" на все интерактивные вопросы и использовать настройки по умолчанию. | Нет |
-m |
--model |
Путь к Pydantic-модели (например, myapp.config:Settings). На её основе будет сгенерирован подробный и валидный config.yml с описанием полей. |
Нет |
Что делает команда init?
При запуске утилита выполняет следующие действия:
- Создание
config.yml:- Если запущен с флагом
-m / --model, сканирует указанную Pydantic-модель и генерирует предзаполненныйconfig.yml. - Без модели — создает стандартный базовый
config.yml(с секциямиLogging,Secretsи т.д.). - Если файл уже существует, утилита спросит подтверждение на перезапись (или перезапишет автоматически при
-y).
- Если запущен с флагом
- Создание
.gitignore:- Добавляет правила игнорирования для конфигурационных файлов окружения (
config.local.yml,.env,*.local.ini) и папки с логами (logs/), предотвращая их случайную отправку в Git.
- Добавляет правила игнорирования для конфигурационных файлов окружения (
- Создание
.chutilsignore:- Создает файл со списком путей, которые ИИ-инструменты
chutils devдолжны пропускать при сканировании (например,tests/,venv/,.git/,build/).
- Создает файл со списком путей, которые ИИ-инструменты
- Создание структуры директорий:
- Создает папку
logs/для записи файлов логирования.
- Создает папку
Примеры использования
1. Быстрая инициализация по умолчанию (без вопросов)
Рекомендуется для автоматизации или быстрого старта.
chutils init -y
Вывод в консоли:
[OK] Создан базовый файл конфигурации config.yml
[OK] Настройки добавлены в .gitignore
[OK] Создан файл .chutilsignore для оптимизации AI-контекста
[OK] Создана директория для логов logs/
Инициализация проекта успешно завершена!
2. Инициализация на основе существующей Pydantic-модели
Если в вашем проекте уже есть класс настроек Pydantic (например, Settings в файле src/config.py):
chutils init -m src.config:Settings
Интерактивный сценарий:
Файл config.yml уже существует. Перезаписать его? [y/N]: y
[OK] Файл config.yml успешно сгенерирован на основе модели 'src.config:Settings'.
[OK] Настройки добавлены в .gitignore
Инициализация проекта успешно завершена!