Skip to content

Commit e6bc287

Browse files
Move default_backend to module level and provide utils
1 parent 05cc3b0 commit e6bc287

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

Lib/pdb.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,22 +301,38 @@ def write(self, data):
301301
line_prefix = '\n-> ' # Probably a better default
302302

303303

304+
# The default backend to use for Pdb instances if not specified
305+
# Should be either 'settrace' or 'monitoring'
306+
_default_backend = 'settrace'
307+
308+
309+
def set_default_backend(backend):
310+
"""Set the default backend to use for Pdb instances."""
311+
global _default_backend
312+
if backend not in ('settrace', 'monitoring'):
313+
raise ValueError("Invalid backend: %s" % backend)
314+
_default_backend = backend
315+
316+
317+
def get_default_backend():
318+
"""Get the default backend to use for Pdb instances."""
319+
return _default_backend
320+
304321

305322
class Pdb(bdb.Bdb, cmd.Cmd):
306323
_previous_sigint_handler = None
307324

308325
# Limit the maximum depth of chained exceptions, we should be handling cycles,
309326
# but in case there are recursions, we stop at 999.
310327
MAX_CHAINED_EXCEPTION_DEPTH = 999
311-
DEFAULT_BACKEND = 'settrace'
312328

313329
_file_mtime_table = {}
314330

315331
_last_pdb_instance = None
316332

317333
def __init__(self, completekey='tab', stdin=None, stdout=None, skip=None,
318334
nosigint=False, readrc=True, mode=None, backend=None):
319-
bdb.Bdb.__init__(self, skip=skip, backend=backend if backend else self.DEFAULT_BACKEND)
335+
bdb.Bdb.__init__(self, skip=skip, backend=backend if backend else get_default_backend())
320336
cmd.Cmd.__init__(self, completekey, stdin, stdout)
321337
sys.audit("pdb.Pdb")
322338
if stdout:

Lib/test/test_pdb.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4449,7 +4449,7 @@ def load_tests(loader, tests, pattern):
44494449
def setUpPdbBackend(backend):
44504450
def setUp(test):
44514451
import pdb
4452-
pdb.Pdb.DEFAULT_BACKEND = backend
4452+
pdb.set_default_backend(backend)
44534453
return setUp
44544454
tests.addTest(doctest.DocTestSuite(test_pdb, setUp=setUpPdbBackend('monitoring')))
44554455
tests.addTest(doctest.DocTestSuite(test_pdb, setUp=setUpPdbBackend('settrace')))

0 commit comments

Comments
 (0)