Le debug par la force du Q 4
dimanche 4 octobre 2015 à 14:37D’abord ça commence avec des print()
puis du pdb… Puis le code se retrouve en background, ou on a des threads, des sous-processes, des proxies, son serveur WSGI qui tourne, etc. Et là, il faut sortir les outils de logging, la massue, le truc qui demande 3 ans à config.
Il n’y a pas de juste milieu.
Alors un mec nous a donné son Q pour changer tout ça.
pip install q
Q est typiquement un lib de feignasse :
def bip(): a = 1 import q q(a) q(a + 1) bip() |
Et pouf, tout est loggé dans /tmp/q
:
0.0s bip: a=1 0.0s bip: a + 1=2
On peut aussi l’utiliser en décorateur pour tracer l’exécution d’une fonction :
import q @q def bip(): a = 1 bip() |
Ce qui donne :
0.0s bip() 0.0s -> None
Ce n’est bien entendu pas fait pour être laissé dans le code, mais uniquement pour le debug. Néamoins c’est fort pratique :
- Le fichier de log est setup automatiquement. On peut quand même choisir le dossier avec la variable d’environnement
$TMPDIR
- Le contenu de l’expression est logguée magiquement avec le résultat.
- En prime on a le temps d’exécution.
- Le fichier de sortie contient de la coloration syntaxique, s’il vous plait !
Avec Joe, qui génère des .gitignores, c’est ma petite découverte sympa de la rentrée.