New submission from Isaac Jurado: The Bdb.runcall method shows a prompt right at the beginning of the function. If breakpoints are defined, it is sometimes handy to skip the prompt until the next breakpoint, if any.
This use case came up in our development environment for a Django application, from where we needed to set breakpoints only for certain request, allowing other request to run without interruption. Our solution was to wrap with a WSGI middleware, something like this: import sys from bdb import BdbQuit from pdb import Pdb class DebuggingMiddleware(object): def __init__(self, app): self.aplicacion = app self.debugger = Pdb() our_setup_breakpoints_function(self.debugger) def __call__(self, environ, start_response): environ['DEBUGGER'] = self.debugger frame = sys._getframe() self.debugger.reset() frame.f_trace = self.debugger.trace_dispatch self.debugger.botframe = frame self.debugger._set_stopinfo(frame, None, -1) sys.settrace(self.debugger.trace_dispatch) try: return self.aplicacion(environ, start_response) except BdbQuit: pass # Return None implicitly finally: self.debugger.quitting = 1 sys.settrace(None) As you can see, it is basically a mix of Bdb.set_trace and Bdb.set_continue which we came up by trial and error. If there was something like Bdb.runcall_no_prompt or an extra flag to Bdb.runcall to trigger this behaviour, this copy and paste would not be necessary. ---------- components: Library (Lib) messages: 234819 nosy: etanol priority: normal severity: normal status: open title: Add non-interactive version of Bdb.runcall type: enhancement versions: Python 3.5 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue23331> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com