[Résolu] Débuggage d'exercices

Les propositions de correctifs ou d'exercices pour Pyromaths.

Modérateur: Développeurs

[Résolu] Débuggage d'exercices

Messagede spalax » Lun 03 Aoû 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: 70
Inscription: Mer 20 Juil 2011, 02:23
Localisation: Nogent sur Oise

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

Messagede spalax » Mar 15 Sep 2015, 23:43

spalax
 
Messages: 70
Inscription: Mer 20 Juil 2011, 02:23
Localisation: Nogent sur Oise

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

Messagede Jérôme » Mer 16 Sep 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: 1060
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes

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

Messagede Jérôme » Mar 17 Nov 2015, 20: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
Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
 
Messages: 1060
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes

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

Messagede spalax » Mar 17 Nov 2015, 21: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: 70
Inscription: Mer 20 Juil 2011, 02:23
Localisation: Nogent sur Oise

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

Messagede spalax » Mar 17 Nov 2015, 22:15

Addendum :

Je viens de définir à l'arrache `_()` comme la fonction identité. Donc `testexo` fonctionne même dans la branche `develop` à jour.
spalax
 
Messages: 70
Inscription: Mer 20 Juil 2011, 02:23
Localisation: Nogent sur Oise

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

Messagede Jérôme » Mar 17 Nov 2015, 22: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
Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
 
Messages: 1060
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes


Retourner vers Propositions

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 9 invités

cron