D’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.
Ha ha ha.
Je viens de me masturber dans les toilettes de mon boulot.
Bon c’est pas la première fois que ça m’arrive. Mais là je l’avais vraiment pas vu venir.
Merci beaucoup et à la prochaine !
merci!
sinon
Puis le code se retrouve dans en background
dans un background?
Indeed !
Une autre histoire de q en python:
Comment faire des requetes SQL sur un fichier .csv ou sur un pipe ?
voir http://harelba.github.io/q/index.html