Создаем красивые и удобные CLI-приложения на Python с помощью Typer и Rich
Публикация показывает, как уйти от громоздкого argparse к современному стеку для CLI на Python. Связка Typer (автогенерация команд, аргументов и --help из аннотаций типов и докстрингов, встроенная валидация) и Rich (цвета, таблицы, прогресс-бары, подсветка) сокращает boilerplate и повышает юзабилити. Автор демонстрирует переход от ручного парсинга к декларативному стилю и обосновывает ценность UX даже для консольных утилит.
В части практики собирается утилита site-checker: вход — список URL, далее HTTP-проверка через requests, индикация через track(), результаты в таблице Rich с цветовым кодом по диапазонам статусов (2xx/3xx/4xx/5xx) и обработкой исключений. Зависимости устанавливаются одной командой: pip install typer rich requests. Базовый таймаут заложен как 5 секунд.
- Инициативы: вынести интерфейс в аннотации типов; стандартизировать справку и валидацию.
- Решения: Rich-таблицы для структурированных результатов; прогресс-бары для долгих операций.
- Задания для развития: опции
--timeout/-t,--output/-o(CSV),--input-file; бонус — асинхронный вариант наasyncio+httpx. - Проблема: рост boilerplate и падение удобства при увеличении числа флагов в argparse.
Читайте также
Я устал настраивать ПК и написал для Windows своё приложение на Flutter
Монолит с отчётами на 30 секунд: как переписали архитектуру и что из этого вышло
Возвращаем к жизни связку OpenClaw и Claude
Stack Overflow отказался от редизайна после критики со стороны постоянных участников сообщества
Renga API: автоматизируем автоматизацию с помощью ИИ-агентов
- Стандарт CLI на Python: Typer вместо argparse: Для внутренних консольных утилит принимаем Typer как базовый инструмент: параметры и команды описываются аннотациями типов, справка и валидация генерируются автоматически. Это уменьшает boilerplate, ускоряет онбординг и делает интерфейсы самодокументируемыми.
[Инструмент]
Зарегистрированные пользователи видят только два тезиса.
Зарегистрироваться