You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ajout d'une variable suggérée dans les messages d'erreur pour les variables non déclarées. Ajout du test associé pour vérifier la présence de la suggestion.
Le cas names vide est géré proprement dans suggest_var, pas de risque de crash si aucune variable n'est déclarée.
Impact minimal sur le code existant : 3 lignes touchées dans environment.py, la logique de suggestion est bien isolée dans utils.py.
Test ajouté et pertinent.
⚠️ Point bloquant : le fallback SequenceMatcher est trop agressif
Dans suggest_var, si get_close_matches ne trouve rien (similarité insuffisante), tu tombes sur un fallback qui retourne toujours la variable la plus proche, même si elle n'a aucun rapport avec la faute de frappe.
Exemple concret :
Variable temperature : Entier
Debut
z <- 42
Fin
Avec le code actuel, l'erreur affichera :
Variable non declaree: z. Vouliez-vous dire 'temperature' ?
Ce qui est trompeur pour un étudiant débutant — une mauvaise suggestion est pire qu'aucune suggestion.
get_close_matches a précisément un seuil de similarité (~0.6) pour éviter ce cas. Le fallback contourne ce garde-fou.
Si get_close_matches ne trouve rien, on retourne "" → build_suggestion_string retourne "" → le message d'erreur reste sobre, sans suggestion hasardeuse.
📝 Point mineur : tests insuffisants
Le test ajouté couvre le cas nominal (faute de frappe proche). Il manque :
Aucune variable déclarée → pas de suggestion, pas de crash
Variable complètement différente → pas de suggestion affichée (ce cas valide précisément le fix ci-dessus)
🔧 Ruff
Tu mentionnes que les warnings ruff existaient avant ta PR, c'est noté. Mais idéalement, une PR ne devrait pas introduire de nouveaux problèmes. Peux-tu vérifier que ruff check src/algolab/utils.py est propre sur ton fichier au moins ?
Une fois le fallback corrigé et les deux tests supplémentaires ajoutés, je merge sans hésiter. Bon travail 🙌
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📋 Description
Ajout d'une variable suggérée dans les messages d'erreur pour les variables non déclarées. Ajout du test associé pour vérifier la présence de la suggestion.
🔗 Issue liée
Closes #4
🔄 Type de changement
✅ Checklist
ruff checkpasse)pytest)📸 Captures d'écran (si applicable)
Un exemple avec une faute de frappe sur une variable courte
algolab -c 'Variable x : Entier Debut y <- 42 Ecrire x Fin'Un autre avec un caractère manquant en début de mot
algolab -c 'Variable temperature : Entier Debut emperature <- 42 Ecrire x Fin'📝 Notes pour les reviewers
Ruff se plaint à propos des mix indentations / espaces dans certains fichiers, problèmes déjà détectés avant la PR.