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

Инициализация проекта (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?

При запуске утилита выполняет следующие действия:

  1. Создание config.yml:
    • Если запущен с флагом -m / --model, сканирует указанную Pydantic-модель и генерирует предзаполненный config.yml.
    • Без модели — создает стандартный базовый config.yml (с секциями Logging, Secrets и т.д.).
    • Если файл уже существует, утилита спросит подтверждение на перезапись (или перезапишет автоматически при -y).
  2. Создание .gitignore:
    • Добавляет правила игнорирования для конфигурационных файлов окружения (config.local.yml, .env, *.local.ini) и папки с логами (logs/), предотвращая их случайную отправку в Git.
  3. Создание .chutilsignore:
    • Создает файл со списком путей, которые ИИ-инструменты chutils dev должны пропускать при сканировании (например, tests/, venv/, .git/, build/).
  4. Создание структуры директорий:
    • Создает папку 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
Инициализация проекта успешно завершена!

Связанные команды

  • validate — Проверить, соответствует ли созданный config.yml вашей модели настроек.
  • template — Сгенерировать шаблон конфигурации без применения изменений к текущей директории.