August 9, 2022

Подборка библиотек для персонализации терминальных приложений на Python

приветики ^//^, тут представлена небольшая подборка библиотек, которые я так или иначе использовал в своих проектах для кастомизации консольного вывода.

Навигация:

  1. asciimatics
  2. textual
  3. rich
  4. questionary
  5. python-prompt-toolkit

1. asciimatics

Asciimatics — это пакет, помогающий людям создавать полноэкранные текстовые пользовательские интерфейсы (от интерактивных форм до анимации ASCII) на любой платформе. Он распространяется под лицензией Apache Software Foundation License 2.0.

Является безусловным фаворитом в больших проектах, которые используют консоль, как ui. Имеет не очень сложную структуру, приятный отклик, возможность анимировать объекты, а также большой ассортимент винджетов и контейнеров.

2. textual

Textual — это полноценный фреймворк TUI (текстовый пользовательский интерфейс) для Python, вдохновленный современной веб-разработкой.

Все обработчики событий асинхронные, из-за чего все виджеты могут независимо обновляться, а также умеют общаться друг с другом отправкой сообщений.

Имеется также поддержка кастомизации виджетов средствами CSS-стилей. Также использует некоторые техники позаимствованные из вью и других веб-фреймворков.

3. rich

Rich это Python библиотека, позволяющая отображать красивый текст и форматировать терминал.

Rich API упрощает добавление цветов и стилей к выводу терминала. Rich также позволяет отображать красивые таблицы, прогресс бары, markdown, код с отображением синтаксиса, ошибки, и т.д. — прямо после установки.

4. questionary

Questionary — это библиотека Python для простого создания красивых интерфейсов командной строки.

Позволяет создавать красивые промпты, которые украсят дефолтный питоновский инпут.

Поддерживаемые промпты:

5. python-prompt-toolkit

python-prompt-toolkit - библиотека, позволяющая создавать интерактивные программы командной строки прямо на Python.

Обилие простых виджетов, подсветка синтаксиса во время печати, автокомплиты, поддержка нажатий мыши и множество других возможностей не оставят данную библиотеку в стороне.