Pular para o conteúdo

Como Usar o Python Rich para Melhorar a Experiência do Usuário

[

O pacote Python Rich: Desbloqueie o Poder do Texto no Console

O pacote Rich do Python é um conjunto de ferramentas que ajuda a gerar texto formatado e destacado de forma bonita no console. De forma mais ampla, ele permite que você construa uma interface de usuário baseada em texto atraente (TUI).

Por que você escolheria uma TUI em vez de uma interface gráfica do usuário, ou GUI? Às vezes, uma tela de texto parece mais apropriada. Por que usar uma GUI completa para um aplicativo simples, quando uma interface de texto elegante será suficiente? Pode ser refrescante trabalhar apenas com texto simples. O texto funciona em quase qualquer ambiente de hardware, até mesmo em um terminal SSH ou em um display de computador de placa única. E muitos aplicativos não precisam da complexidade de um sistema completo de janelas gráficas.

Neste tutorial, você aprenderá como o Rich pode ajudá-lo a:

  • Aprimorar a interface do usuário de ferramentas de linha de comando
  • Melhorar a legibilidade da saída do console
  • Criar displays atraentes de painéis de controle para dados tabulares em tempo real
  • Gerar relatórios bem formatados

Há muito que você pode fazer com o Rich por si só, e seu suporte para exibições interativas e dinâmicas pode ser suficiente para o seu aplicativo. Ao seguir este tutorial, você experimentará muitos dos recursos interessantes do Rich e terminará usando suas habilidades para criar um display tabular de preços de criptomoedas que atualiza dinamicamente:

Table.gif)

Instalando o Rich

  • Windows
  • Linux + macOS

Windows PowerShell

Terminal window
PS> python -m venv rich-env
PS> rich-env\Scripts\activate
(rich-env) PS> pip install rich

Linux e macOS

Terminal window
$ python3 -m venv rich-env
$ source rich-env/bin/activate
(rich-env) $ pip install rich

Certifique-se de substituir rich-env pelo nome da sua escolha para o seu ambiente virtual e use python ou python3 dependendo da sua configuração.

Agora que você tem o Rich instalado, vamos explorar como usá-lo em seu desenvolvimento Python.

Usando o Rich para o Desenvolvimento Python

Para começar a usar o pacote Rich, você precisa importá-lo em seu código Python:

from rich import print

A função print do Rich é uma substituição direta da função nativa print do Python, mas com recursos adicionais para melhorar a formatação e o destaque do texto no console.

Destaque de Sintaxe

Um recurso útil do Rich é o destaque de sintaxe, que permite que você imprima código Python no console com cores para diferenciar palavras-chave, identificadores, strings, números e outros elementos da linguagem.

Para usar o destaque de sintaxe, você usa o método .highlight do objeto Console, que está disponível no módulo rich.console:

from rich.console import Console
console = Console()
console.print(console.highlight("for i in range(10):", "python"))

Este código imprimirá a linha "for i in range(10):" com as palavras-chave, identificadores e outros elementos destacados de acordo com as convenções de cores do Python.

Inspeção de Objetos de Código

Outro recurso útil do Rich é a capacidade de inspecionar objetos de código Python, exibindo informações sobre módulos, classes, funções e métodos.

Para inspecionar um objeto de código, você usa o método .inspect do objeto Console:

from rich.console import Console
console = Console()
console.print(console.inspect(range))

Este código exibirá informações sobre o objeto range, incluindo sua assinatura, a lista dos métodos disponíveis e outras informações relevantes.

A Classe Console

A classe Console é o cerne do pacote Rich. Ela fornece uma interface para imprimir texto com formatação avançada, destaque de sintaxe, inspeção de objetos de código e muito mais.

Para usar a classe Console, você cria uma instância dela e, em seguida, chama os métodos adequados para imprimir o texto formatado desejado:

from rich.console import Console
console = Console()
console.print("Hello, [bold magenta]Rich[/bold magenta]!", justify="center")

Este código imprimirá a mensagem “Hello, Rich!” no console, com a palavra “Rich” em negrito e magenta, e alinhada ao centro.

Registro e Rastreamento de Erros

O Rich também fornece recursos para facilitar o registro e o rastreamento de erros no console. Você pode imprimir mensagens de log com níveis de gravidade diferentes e formatar informações de rastreamento de erros para facilitar a depuração.

Para registrar uma mensagem de log, você usa o método .log do objeto Console:

from rich.console import Console
console = Console()
console.log("This is an info message.")
console.log("[bold yellow]Warning:[/bold yellow] This is a warning message.")
console.log("[bold red]Error:[/bold red] An error occurred.")

Este código imprimirá três mensagens de log no console, cada uma com um nível de gravidade diferente.

Para formatar informações de rastreamento de erros, você usa o método .print_exception do objeto Console:

import traceback
from rich.console import Console
console = Console()
try:
1 / 0
except Exception as e:
console.print_exception(show_locals=True)

Este código imprimirá o rastreamento de erro completo para a exceção que ocorreu, incluindo a pilha de chamadas e os valores das variáveis locais.

Mantendo o Usuário Engajado por meio de Animação

Além de fornecer recursos de formatação e destaque de texto, o Rich também permite criar animações no console para manter o usuário engajado.

Entendendo Gerenciadores de Contexto

Antes de começarmos com as animações, vamos revisar os gerenciadores de contexto no Python. Os gerenciadores de contexto são usados para definir um contexto temporal para a execução de um bloco de código, permitindo que você execute código de configuração antes e após a execução do bloco.

Um exemplo comum de uso de gerenciadores de contexto é o uso do bloqueio (lock) em uma seção crítica de código, para evitar que várias threads acessem simultaneamente recursos compartilhados.

No Python, você pode usar o bloco with para definir um contexto de um objeto que tenha implementado os métodos enter() e exit(). O código de configuração é colocado no bloco enter, e o código para finalização é colocado no bloco exit.

Aqui está um exemplo básico de uso de um gerenciador de contexto:

class MyContext:
def __enter__(self):
print("Entering context")
def __exit__(self, exc_type, exc_val, exc_tb):
print("Exiting context")
with MyContext():
print("Inside context")

Este código exibirá as mensagens “Entering context”, “Inside context” e “Exiting context” quando executado.

Exibindo o Status Dinâmico com Animações

Uma forma de manter o usuário engajado no console é exibir um status dinâmico durante a execução de uma tarefa demorada. O Rich simplifica esse processo com a classe Progress, que gera uma barra de progresso interativa.

Para usar a classe Progress, você cria uma instância dela e chama o método .add_task para adicionar tarefas à barra de progresso. Em seguida, você atualiza a barra de progresso chamando o método .update com o número de tarefas concluídas.

Aqui está um exemplo básico de uso da classe Progress:

import time
from random import randint
from rich.progress import Progress
progress = Progress()
total_tasks = 10
with progress:
task_id = progress.add_task("[green]Processing...", total=total_tasks)
for task in range(total_tasks):
time.sleep(randint(1, 3))
progress.update(task_id, completed=task + 1)

Este código simula o processamento de 10 tarefas, pausando por um período aleatório entre 1 e 3 segundos em cada tarefa. Ele exibe uma barra de progresso interativa que é atualizada a cada tarefa concluída.

Trabalhando com Tabelas

Outra maneira de tornar o console mais interativo é exibir tabelas formatadas. O Rich fornece a classe Table, que facilita a criação e a exibição de tabelas no console.

Para usar a classe Table, você cria uma instância dela e chama os métodos apropriados para adicionar colunas e linhas à tabela, bem como definir opções de formatação, como alinhamento e estilo.

Aqui está um exemplo básico de uso da classe Table:

from rich.table import Table
table = Table()
table.add_column("Date")
table.add_column("Time")
table.add_column("Event")
table.add_row("2021-10-01", "14:30", "Meeting")
table.add_row("2021-10-02", "09:00", "Presentation")
console.print(table)

Este código cria uma tabela com três colunas: “Date”, “Time” e “Event”. Ele adiciona duas linhas à tabela e, em seguida, a imprime no console.

Conclusão

O pacote Rich do Python é uma ferramenta poderosa e versátil para melhorar a formatação e o destaque de texto no console. Com recursos como o destaque de sintaxe, inspeção de objetos de código, animações e exibição de tabelas, o Rich permite que você crie interfaces de usuário atraentes e interativas.

Neste tutorial, você aprendeu como instalar o Rich, explorou os recursos e exemplos de uso do pacote e descobriu como melhorar suas próprias aplicações Python com formatação avançada no console.

Próximos Passos

Rich_Watermarked.639e06a308ab.jpg)