PROJET AUTOBLOG


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

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

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

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.

Error happened! 0 - Undefined variable: xml In: /home/www/carrade/autoblogs/autoblogs/autoblog.php:77 http://autoblogs.carrade.eu/autoblogs/sametmaxcom_9a0374ae99e9509a2ae767584a96873592123527/?Le-debug-par-la-force-du-Q #0 /home/www/carrade/autoblogs/autoblogs/autoblog.php(77): exception_error_handler(8, 'Undefined varia...', '/home/www/carra...', 77, Array) #1 /home/www/carrade/autoblogs/autoblogs/autoblog.php(368): VroumVroum_Feed_Exception::getXMLErrorsAsString(Array) #2 /home/www/carrade/autoblogs/autoblogs/autoblog.php(935): VroumVroum_Blog->update() #3 /home/www/carrade/autoblogs/autoblogs/sametmaxcom_9a0374ae99e9509a2ae767584a96873592123527/index.php(1): require_once('/home/www/carra...') #4 {main}