Красота в консоли

Думаете, что вывод текста через print() — это скучно, серо и некрасиво? Значит, вы просто не знакомы с библиотекой rich.

Что умеет rich?

Rich умеет делать красиво.

Rich

  • разные стили и цвета для текста;
  • поддержка Markdown;
  • анимированные прогресс-бары;
  • таблицы;
  • эмодзи;
  • вывод логов и стека вызовов в красивом виде.

Всё это упаковано в 1 библиотеку, которая сделает работу с консолью куда более комфортной.

Как установить rich

  1. Откройте терминал (командную строку);
  2. Если умеете пользоваться виртуальным окружением, то создайте и активируйте его. Если нет, то пропустите этот шаг;
  3. Выполните команду pip install rich.

Как использовать rich

Готовый пример кода:

from time import sleep

# Переопределяем встроенную функцию `print()`
from rich import print
from rich.console import Console
from rich.progress import Progress

with Progress() as progress:
    task1 = progress.add_task("[red]Загрузка...", total=1000)
    task2 = progress.add_task("[green]Обработка...", total=1000)
    task3 = progress.add_task("[cyan]Удаление мусора...", total=1000)

    while not progress.finished:
        progress.update(task1, advance=0.7)
        progress.update(task2, advance=0.55)
        progress.update(task3, advance=0.9)
        sleep(0.01)

print('[bold]Все задачи выполнены![/] :thumbs_up:\n')

console = Console()
tasks = [
    'Подготовка среды', 'Установка зависимостей', 'Инициализация',
    'Открытие базы', 'Загрузка данных'
]

with console.status("[bold green]Делаем важные дела...") as status:
    while tasks:
        task = tasks.pop(0)
        sleep(1)
        console.log(f"{task} complete")

Видео: https://calmcode.io/rich/introduction.html

Полная документация: https://github.com/Textualize/rich