Создаем красивые и удобные 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.

Читайте также

  1. Мои личные скрипты для повседневной работы
  2. Основы аналитики и ML простым языком. Часть 1
  3. Делаем LLM-советника по акциям РФ как в Alfa Arena
  4. 10 принципов удобного интерфейса
  5. Reverse-инжиниринг в Telegram Ads: вскрываем рабочие связки конкурентов с помощью TgMaps
Ключевые инсайты из новости (по версии ChatGPT)
  • Стандарт CLI на Python: Typer вместо argparse: Для внутренних консольных утилит принимаем Typer как базовый инструмент: параметры и команды описываются аннотациями типов, справка и валидация генерируются автоматически. Это уменьшает boilerplate, ускоряет онбординг и делает интерфейсы самодокументируемыми.
    [Инструмент]
Для получения полного доступа оформите подписку PubMag PRO.
Зарегистрированные пользователи видят только два тезиса.
Зарегистрироваться
Инсайты автоматически генерируются с помощью искусственного интеллекта на основе текста статьи.
← Назад в лентуЧитать оригинал →
✈️ Подписывайтесь на мой Telegram-канал — там еще больше интересного про AdTech, MarTech, AI и многое другое!