====== 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]]