feat: support .eml Picnic + correction fuzzy matching
Support .eml : - pipeline._eml_to_html() extrait le HTML des emails Picnic - Déposer un .eml dans inbox/picnic/ fonctionne comme un .html - Pas de nouvelle dépendance (module email stdlib) - 5 tests ajoutés (test_eml.py) Correction fuzzy matching : - Le score est maintenant calculé sur le nom seul (avant " | ") - Évite que les différences de marque/poids pénalisent le score - Résultat : 8 paires trouvées vs 0 avant la correction Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -51,12 +51,17 @@ def find_fuzzy_matches(
|
||||
]
|
||||
|
||||
# Produit cartésien filtré par seuil
|
||||
# On compare uniquement le nom (avant le premier " | ") pour éviter que
|
||||
# les différences de marque/quantité ("| MDD | 1kg" vs "| - | -") ne
|
||||
# pénalisent artificiellement le score.
|
||||
matches = []
|
||||
for p in picnic_names:
|
||||
p_name = p.split(" | ")[0].strip()
|
||||
for lec in leclerc_names:
|
||||
if p == lec:
|
||||
continue # exact match déjà géré par get_compare_prices
|
||||
score = fuzz.token_sort_ratio(p, lec)
|
||||
lec_name = lec.split(" | ")[0].strip()
|
||||
score = fuzz.token_sort_ratio(p_name, lec_name)
|
||||
if score >= threshold:
|
||||
matches.append({"name_picnic": p, "name_leclerc": lec, "score": score})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user