Lorsque notre station de jardin renvoie des données météo (température, humidité, pression…), il est utile d'avoir un affichage lisible et coloré pour mieux distinguer les différentes mesures. Jusqu'ici, nous utilisions des codes ANSI pour ajouter un peu de couleur dans le terminal.
Mais pour un rendu plus propre, lisible, personnalisable et moderne, la bibliothèque rich est une excellente alternative.
🧱 ANSI (codes couleurs bruts) | 🌈 Rich (interface haut niveau) |
———————————- | ———————————————————– |
Utilise des codes comme `\033[91m` | Utilise des noms lisibles : `“red”`, `“green”`, `“cyan”`… |
Peu de contrôle sur le style | Affichage centré, aligné, stylisé facilement |
Difficile à maintenir et à lire | Code clair, moderne, accessible |
8 à 16 couleurs de base | Plus de 140 couleurs disponibles |
Pas d'affichage enrichi | Icônes, tableaux, mise en page possible |
Voici quelques couleurs bien contrastées à utiliser dans un terminal (parmi les 140 disponibles) :
⚠️ Certaines couleurs ne sont visibles correctement que sur les terminaux qui supportent le mode 256 couleurs.
pip install rich
from rich.console import Console from rich.text import Text
Création de l'objet console :
console = Console()
Cette ligne permet de créer un objet console qui va gérer l'affichage dans le terminal. C’est avec cet objet qu’on peut utiliser toutes les fonctions de rich.
console.print(f"[bold cyan]Date et heure :[/bold cyan] {date_heure}") console.print(f"[bold red]Température :[/bold red] {round(temperature, 1)}°C") console.print(f"[bold blue]Humidité :[/bold blue] {round(humidity, 1)}%") console.print(f"[bold magenta]Point de rosée :[/bold magenta] {round(point_de_rosee, 1)}°C") console.print(f"[bold yellow]Humidex :[/bold yellow] {round(humidex, 1)}") console.print(f"[bold green]Pression atmosphérique :[/bold green] {round(pression, 2)} hPa") console.print(f"[bold navajo_white1]Capteur d'humidité du sol 1 (tension) :[/bold navajo_white1 {round(capteur_humidite_1.voltage, 2)} V") console.print(f"[bold gold3]Capteur d'humidité du sol 1 (valeur brute) :[/bold gold3] {round(capteur_humidite_1.value, 2)}")
console.print(…) : méthode principale pour afficher du texte enrichi (couleur, gras, emoji…).
[bold red]Température :[/bold red] : indique que le mot “Température :” sera affiché en rouge gras.