pdbp (Pdb+) --- Expanding pdb and fixing pdbpp.
Project description
pdbp (Pdb+)
pdbp (Pdb+) is a drop-in replacement for pdb
and the (unmaintained) pdbpp (Pdb++) packages. pdbp (Pdb+) makes Python debugging a lot easier (and also a lot more fun).
Installation:
pip install pdbp
Then add import pdbp
to an __init__.py
of your project, which will automatically make Pdb+
the default debugger at breakpoints:
import pdbp
If using flake8
for code-linting, you may want to add # noqa
to that line:
import pdbp # noqa
To trigger a breakpoint in your code with pytest
, add --trace
(to start tests with a breakpoint) or --pdb
(to trigger a breakpoint if a test fails).
pdbp
(Pdb+) fixes pdbpp
(pdb++) so that it works in all environments. It also includes other bug-fixes. "Sticky" mode is the default option, which shows multiple lines of code while letting you see where you're going (n
+ Enter
).
If you somehow reset pdb
to Python's built-in version, you can always replace pdb
with pdbp
again as the default debugger by running this:
import pdb
import pdbp
for key in pdbp.__dict__.keys():
pdb.__dict__[key] = pdbp.__dict__[key]
Here's how to customize pdbp
/pdb
options if you don't like the default settings: (Shown below are the default settings.)
import pdb
if hasattr(pdb, "DefaultConfig"):
pdb.DefaultConfig.filename_color = pdb.Color.blue
pdb.DefaultConfig.line_number_color = pdb.Color.turquoise
pdb.DefaultConfig.show_hidden_frames_count = False
pdb.DefaultConfig.disable_pytest_capturing = True
pdb.DefaultConfig.enable_hidden_frames = False
pdb.DefaultConfig.truncate_long_lines = True
pdb.DefaultConfig.sticky_by_default = True
You can also trigger Pdb+
activation like this:
import pdbp
pdbp.set_trace()
pdbp (Pdb+) commands
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.