Об этом проекте
Rich — это библиотека Python для форматированного текста и красивого вывода в терминале. Она предоставляет API, который упрощает добавление цвета и стиля к терминальному выводу, а также позволяет сразу отображать аккуратные таблицы, прогресс-бары, Markdown, исходный код с подсветкой синтаксиса, трейсбэки и многое другое.
Совместимость: Rich работает на Linux, macOS и Windows. True color и эмодзи поддерживаются в новом Windows Terminal; классический терминал ограничен 16 цветами. Требуется Python 3.8 или новее; библиотека также работает в Jupyter-блокнотах без дополнительной настройки.
Установка: устанавливается через pip (`python -m pip install rich`), проверить вывод можно командой `python -m rich`.
Rich print: импорт `rich.print` предоставляет версию с той же сигнатурой, что и встроенный `print`, но с поддержкой разметки, например `[bold magenta]World[/bold magenta]`, а также имен эмодзи. Rich можно установить и в Python REPL через `pretty.install()`, чтобы структуры данных красиво выводились и подсвечивались.
Console API: объект `Console` предлагает метод `print`, похожий на встроенный, с переносом слов, стилевыми аргументами и BBCode-подобной консольной разметкой. Также есть метод `log`, который добавляет столбцы времени и места, умеет красиво выводить коллекции и поддерживает опцию `log_locals` для отображения локальных переменных. Имеется встроенный обработчик для модуля logging в Python.
Встроенные отображаемые элементы включают:
- Эмодзи: вставка эмодзи по имени между двоеточиями, например `:smiley:`.
- Таблицы: гибкие Unicode-таблицы с настраиваемыми рамками, стилями, выравниванием ячеек и столбцами, которые подстраиваются под ширину терминала.
- Прогресс-бары: несколько прогресс-баров без мерцания через `track` или пользовательские конфигурации столбцов для процента, размера файла, скорости и оставшегося времени.
- Статус: анимация спиннера и сообщение через контекстный менеджер `status`; доступные спиннеры можно посмотреть командой `python -m rich.spinner`.
- Дерево: отображение иерархических данных с направляющими линиями, подходит для файловых структур; демонстрация доступна через `python -m rich.tree`.
- Столбцы: аккуратные колонки содержимого с равной или оптимальной шириной, как в списках каталогов.
- Markdown: отображение Markdown-форматирования в терминале с помощью класса `Markdown`.
- Подсветка синтаксиса: работает на базе Pygments через объект `Syntax`, с темами и номерами строк.
- Трейсбэки: красивые и более читаемые трейсбэки, показывающие больше кода, чем стандартные трейсбэки Python; их можно настроить как обработчик по умолчанию.
Отображаемые элементы Rich построены на протоколе Console, что позволяет пользователям реализовывать собственный Rich-контент. Среди связанных проектов в README упоминаются Rich CLI — приложение командной строки для подсветки синтаксиса, отображения Markdown и CSV в таблицах, а также Textual — родственный проект для создания сложных терминальных пользовательских интерфейсов.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.