Как спроектировать CLI-утилиту с подкомандами, автокомплитом и хорошей тестируемостью?
Постройте команды как чистые функции и свяжите их через Typer/Click; типизируйте параметры (Typer читает type hints), включите генерацию completion-скриптов, не делайте тяжёлую работу на уровне импорта. Пакуйте через pyproject.toml и console_scripts, логируйте в stderr. Тестируйте CliRunner/subprocess с фикстурами и золотыми эталонами вывода.
Библиотека собеса по Python
Постройте команды как чистые функции и свяжите их через Typer/Click; типизируйте параметры (Typer читает type hints), включите генерацию completion-скриптов, не делайте тяжёлую работу на уровне импорта. Пакуйте через pyproject.toml и console_scripts, логируйте в stderr. Тестируйте CliRunner/subprocess с фикстурами и золотыми эталонами вывода.
Библиотека собеса по Python