import json def coerce_structured_value(var_type: str, value: str) -> str: """Pour une variable "objet"/"tableau" (voir db/constants.py), la valeur stockée doit rester du JSON analysable — sinon la prochaine lecture (_resolve_variable_path, screens/rendering/ filter_repeater_rows.py) échouerait silencieusement à chaque fois. Un JSON invalide retombe donc sur un défaut sûr ("{}"/"[]") plutôt que d'être stocké tel quel. Les autres types ne sont jamais touchés ici.""" if var_type not in ("objet", "tableau"): return value text = (value or "").strip() fallback = "{}" if var_type == "objet" else "[]" if not text: return fallback try: json.loads(text) except (TypeError, ValueError): return fallback return text