From 03bf5686e0d5ac641785299ed5023c8df8921c18 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Sun, 19 Jul 2026 12:53:37 +0200 Subject: [PATCH] =?UTF-8?q?fix(figures):=20=C3=A9viter=20le=20crash=20quan?= =?UTF-8?q?d=20une=20colonne=20consid=C3=A9rations=20est=20absente/vide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit compute_considerations_stats initialisait les défauts `{key}_renseignees` en 2-uplets `(0, 0)` mais get_considerations_card_content les dépaquette en 3-uplets. Quand une colonne (considerationsSociales/Environnementales) est absente du schéma filtré (fréquent avec peu de marchés sélectionnés), le défaut survivait → ValueError: not enough values to unpack (expected 3, got 2). Défaut porté à `(0, 0, 0)` : la barre dégrade à 0 % au lieu de planter. Co-Authored-By: Claude Opus 4.8 --- src/figures.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/figures.py b/src/figures.py index 709a1fc..69dd19f 100644 --- a/src/figures.py +++ b/src/figures.py @@ -794,15 +794,15 @@ def compute_considerations_stats(lff: pl.LazyFrame) -> dict[str, tuple[int, int, Clés renvoyées : - "champs_renseignes" : (count_ren_sociales, pct / total) - - "{key}_renseignees" : (count_ren, pct positifs parmi renseignés) - Colonne absente -> (0, 0). + - "{key}_renseignees" : (count_ren, count_pos_ren, pct positifs parmi renseignés) + Colonne absente/vide -> "champs_renseignes" (0, 0), "{key}_renseignees" (0, 0, 0). """ names = lff.collect_schema().names() present = {key: col for key, col in CONSIDERATIONS_COLUMNS.items() if col in names} - stats: dict[str, tuple[int, int, int]] = {"champs_renseignes": (0, 0)} + stats: dict[str, tuple[int, ...]] = {"champs_renseignes": (0, 0)} for key in CONSIDERATIONS_COLUMNS: - stats[f"{key}_renseignees"] = (0, 0) + stats[f"{key}_renseignees"] = (0, 0, 0) if not present: return stats