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