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

Просмотр путей поиска (chutils show-paths)

Команда chutils show-paths выводит детальную информацию о том, в каких директориях и в каком приоритете chutils ищет конфигурационные файлы (config.yml, config.yaml, config.ini).

Это крайне полезно при отладке в сложных окружениях (Docker, монорепозитории, виртуальные среды), чтобы понять, почему настройки не загружаются или берутся из другой директории.


Синтаксис

chutils show-paths [-h] [--json]

Параметры и флаги:

Флаг Описание Обязательный
--json Вывести информацию в структурированном формате JSON. Полезно для автоматического парсинга сторонними скриптами или CI/CD инструментами. Нет

Примеры использования

1. Стандартный вывод (человекочитаемый)

chutils show-paths

Вывод в консоли (в виде таблицы rich, если библиотека rich установлена):

┌─────────────────────────────────┐
│ Диагностика путей конфигурации  │
├──────────────────┬──────────────┤
│ Параметр         │ Значение     │
├──────────────────┼──────────────┤
│ Корень проекта   │ D:\PROJECTS\…│
│ Основной конфиг  │ D:\PROJECTS\…│
│ Конфиг окружения │ Не найден    │
│ Локальный конфиг │ Не найден    │
└──────────────────┴──────────────┘

Список маркеров для поиска (в порядке приоритета):
 • config.yml
 • config.yaml
 • config.ini
 • settings.yml
 • settings.yaml
 • settings.ini

2. Вывод в формате JSON

chutils show-paths --json

Вывод в консоли:

{
  "base_dir": "D:\\PROJECTS\\chutils",
  "main_config": "D:\\PROJECTS\\chutils\\config.yml",
  "env_config": null,
  "local_config": null,
  "search_markers": [
    "config.yml",
    "config.yaml",
    "config.ini",
    "settings.yml",
    "settings.yaml",
    "settings.ini"
  ]
}

Как chutils определяет пути?

  1. Автоопределение корня: Утилита поднимается вверх от текущей рабочей директории, пока не найдет файлы-маркеры проекта (pyproject.toml, setup.py, requirements.txt, .git).
  2. Поиск файлов: В корневом каталоге проверяется наличие файлов с именами config.yml, config.yaml или config.ini.
  3. Локальные переопределения: При поиске config.yml автоматически ищется файл config.local.yml, который сливается с базовым (применяя локальные настройки поверх).