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:
+4
-4
@@ -794,15 +794,15 @@ def compute_considerations_stats(lff: pl.LazyFrame) -> dict[str, tuple[int, int,
|
|||||||
|
|
||||||
Clés renvoyées :
|
Clés renvoyées :
|
||||||
- "champs_renseignes" : (count_ren_sociales, pct / total)
|
- "champs_renseignes" : (count_ren_sociales, pct / total)
|
||||||
- "{key}_renseignees" : (count_ren, pct positifs parmi renseignés)
|
- "{key}_renseignees" : (count_ren, count_pos_ren, pct positifs parmi renseignés)
|
||||||
Colonne absente -> (0, 0).
|
Colonne absente/vide -> "champs_renseignes" (0, 0), "{key}_renseignees" (0, 0, 0).
|
||||||
"""
|
"""
|
||||||
names = lff.collect_schema().names()
|
names = lff.collect_schema().names()
|
||||||
present = {key: col for key, col in CONSIDERATIONS_COLUMNS.items() if col in 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:
|
for key in CONSIDERATIONS_COLUMNS:
|
||||||
stats[f"{key}_renseignees"] = (0, 0)
|
stats[f"{key}_renseignees"] = (0, 0, 0)
|
||||||
|
|
||||||
if not present:
|
if not present:
|
||||||
return stats
|
return stats
|
||||||
|
|||||||
Reference in New Issue
Block a user