fix(figures): éviter le crash quand une colonne considérations est absente/vide

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 <noreply@anthropic.com>
This commit is contained in:
Colin Maudry
2026-07-19 12:53:37 +02:00
parent dadb11a164
commit 03bf5686e0
+4 -4
View File
@@ -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