====== Mise en couleur dans le terminal avec Rich ======
===== Pourquoi améliorer l'affichage dans un terminal ? =====
###
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.
###
===== Couleurs ANSI vs Rich =====
| 🧱 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 |
===== Liste de couleurs Rich utiles =====
Voici quelques couleurs bien contrastées à utiliser dans un terminal (parmi les 140 disponibles) :
* red
* green
* blue
* yellow
* magenta
* cyan
* white
* black
* orange1
* violet
* deep_sky_blue1
* spring_green2
* dark_orange3
* turquoise2
* light_salmon1
* chartreuse2
* sky_blue1
* gold3
* plum4
* aquamarine1
* medium_violet_red
* khaki1
* grey50
⚠️ Certaines couleurs ne sont visibles correctement que sur les terminaux qui supportent le mode 256 couleurs.
===== Installation de la bibliothèque Rich =====
pip install rich
===== Initialisation de Rich =====
from rich.console import Console
from rich.text import Text
* **Console** est l'outil de base de la bibliothèque **Rich**. C’est lui qui gère l’affichage dans le terminal.
* **Text** permet de **styliser dynamiquement** des portions de texte dans une même ligne (**gras**, //italique//, __souligné__…).
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.
###
===== Affichage des données =====
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)}")
{{ :raspberry:couleur_rich.png?400|}}
###
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**.
###
----
Suite vers [[jardin_unicode|Utilisation d'icônes unicode dans le terminal]]