pdb.set_trace() en Google App Engine

GAE redirecciona todo el stdout a la salida del navegador (response), por lo que el pdb tal cual no funciona. Para hacerlo funcionar hay que hacer un pequeño truco:

import sys, pdb
for attr in ('stdin', 'stdout', 'stderr'):
    setattr(sys, attr, getattr(sys, '__%s__' % attr))
pdb.set_trace()

Yo lo he encapsulado en un fichero, así puedo usarlo más o menos como antes. Lo he llamado gpdb.py:

import sys
import pdb

def set_trace():
    for attr in ('stdin', 'stdout', 'stderr'):
        setattr(sys, attr, getattr(sys, '__%s__' % attr))

    return pdb.set_trace()

Y para usarlo, en mi código añado:

            import gpdb; gpdb.set_trace()

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *