managers: tolérer `type` en liste dans les fiches SerpApi (multi-catégories)
Le champ `type` des local_results Google Maps arrive maintenant parfois en liste, ce qui cassait la résolution (`TypeError` dans _score_candidate et le tri des candidats). Normalisé en chaîne dès la réception des candidats. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 changed file +4 −0
modified
louka/managers.py
+4 −0
@@ -152,6 +152,10 @@ def resolve(manager_id: int, con=None) -> dict: | |||||
| 152 | cands = data.get("local_results") or [] | 152 | cands = data.get("local_results") or [] | ||
| 153 | if not cands and data.get("place_results"): | 153 | if not cands and data.get("place_results"): | ||
| 154 | cands = [data["place_results"]] | 154 | cands = [data["place_results"]] | ||
| 155 | + for c in cands: | ||||
| 156 | + # SerpApi renvoie parfois `type` en liste (multi-catégories) | ||||
| 157 | + if isinstance(c.get("type"), list): | ||||
| 158 | + c["type"] = ", ".join(str(t) for t in c["type"]) | ||||
| 155 | 159 | ||||
| 156 | scored = [( *_score_candidate(mgr, c), c) for c in cands[:8]] | 160 | scored = [( *_score_candidate(mgr, c), c) for c in cands[:8]] | ||
| 157 | best, best_conf, best_sig = None, 0.0, {} | 161 | best, best_conf, best_sig = None, 0.0, {} | ||
| 158 | 162 | ||||