PROJET AUTOBLOG


Sam & Max: Python, Django, Git et du cul

Site original : Sam & Max: Python, Django, Git et du cul

⇐ retour index

Le debug par la force du Q 4

dimanche 4 octobre 2015 à 14:37

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 :

Avec Joe, qui génère des .gitignores, c’est ma petite découverte sympa de la rentrée.