[Résolu] Débuggage d'exercices

Les propositions de correctifs ou d'exercices pour Pyromaths.

Modérateur : Développeurs

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

[Résolu] Débuggage d'exercices

Message par spalax » 03 août 2015, 18:12

Salut,
je me demandais quelle était votre méthode pour « débugger » les exercices. Je pense en particulier à la création d'exercices, lorsque le code LaTeX généré contient des erreurs (ne compile pas) qu'il faut corriger.

Pour le moment, avant la création de l'outil testexo, la méthode que je vois est d'utiliser l'interface graphique pour créer un fichier LaTeX, mais ça fait beaucoup de clics pour détecter une accolade manquante. J'ai une idée en tête, mais avant de l'implémenter, je voulais savoir si vous aviez d'autres solutions, meilleures.

Mon idée est d'ajouter une option `--pipe` à la sous-commande `compile` de `testexo`. Actuellement, `testexo` permet de compiler un exercice (en définissant éventuellement la graine utilisée par le générateur aléatoire, pour avoir quelque chose de déterministe). Dans mon idée, le fichier LaTeX est généré, placé dans un fichier temporaire, et avant d'être compilé, la (ou les) arguments de `--pipe`, qui sont des commandes, sont exécutés sur le fichier. Par exemple :
  • `testexo.py chemin/vers/mon/exercice.py compile --pipe more` permet de visualiser le fichier LaTeX généré avant sa compilation ;
  • `testexo.py chemin/vers/mon/exercice.py compile --pipe vim` permet d'éditer le fichier dans vim sa compilation ;
  • `testexo.py chemin/vers/mon/exercice.py compile --pipe "cp {} foo.tex` copie le fichier temporaire vers `foo.tex`.
Les arguments de `--pipe` sont interprétés comme suit :
  • s'ils contiennent `{}`, c'est remplacé par le chemin (absolu) du fichier LaTeX ;
  • sinon, le chemin (absolu) du fichier LaTeX est ajouté en fin de commandes.
Ainsi, `--pipe vim` et `--pipe "vim {}"` donnent le même résultat.

Des commentaires ?

-- Louis

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: [Résolu] Débuggage d'exercices

Message par spalax » 15 sept. 2015, 23:43


Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1083
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: [Résolu] Débuggage d'exercices

Message par Jérôme » 16 sept. 2015, 15:37

Merci beaucoup Louis :)
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1083
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: [Résolu] Débuggage d'exercices

Message par Jérôme » 17 nov. 2015, 19:31

Salut Louis,

j'ai voulu tester aujourd'hui mais je ne parviens pas à faire fonctionner testexos.py. J'ai utilisé la commande :
./testexo.py pyromaths/ex/lycee/SecondDegre.py compile --pipe vim
mais j'obtiens le message d'erreur suivant :
Traceback (most recent call last):
  File "./testexo.py", line 240, in <module>
    main()
  File "./testexo.py", line 221, in main
    pyromaths.ex.load()
AttributeError: 'module' object has no attribute 'load'
As-tu la moindre idée de ce dont il s'agit ?

Jérôme
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: [Résolu] Débuggage d'exercices

Message par spalax » 17 nov. 2015, 20:43

Bonjour,
depuis que j'ai écris ce message, j'ai modifié la manière de spécifier les exercices. Maintenant, chaque exercice a un identifiant unique (de la forme NIVEAU.NOM_DE_LA_CLASSE). Pour voir les identifiants disponibles :

Code : Tout sélectionner

./testexo.py lsexos | sort
Ensuite, (mais tu as recopié mon exemple erroné), le mot-clef `compile` vient avant le nom de l'exercice. Donc ta commande ressemblerait plutôt à :

Code : Tout sélectionner

./testexo.py compile lycee.exo_factorisation_degre2 --pipe vim
Mais le message d'erreur que tu obtiens ne correspond pas aux erreurs que je viens de citer. Pourrais-tu ré-essayer avec la bonne commande, et me donner le message d'erreur si nécessaire ? De même, peux-tu vérifier que tu es bien sur la branche `develop` ? Ça fonctionnait au moins au commit fb4d417. Par contre, l'introduction de gettext a cassé cela (car la fonction `_()` n'est pas définie). Il faudrait que je répare cela. C'est ajouté à ma TODO liste…

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: [Résolu] Débuggage d'exercices

Message par spalax » 17 nov. 2015, 21:15

Addendum :

Je viens de définir à l'arrache `_()` comme la fonction identité. Donc `testexo` fonctionne même dans la branche `develop` à jour.

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1083
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: [Résolu] Débuggage d'exercices

Message par Jérôme » 17 nov. 2015, 21:39

C'est parfait ! Merci :)
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Répondre