Skip to content

Releases: mdmintz/pdbp

1.0.0 - First Official Release

30 Nov 07:02
Compare
Choose a tag to compare

pdbp (Pdb+)

First Official Release

Pdb+

pdbp (Pdb+) is a drop-in replacement for pdb that improves on the (unmaintained) pdbpp (Pdb++) package.

pdbp (Pdb+) makes Python debugging easier (and a lot more fun).

Installation & Usage:

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

Pdb+ Commands

More examples:

Pdb+ is used by packages such as seleniumbase:


Pdb+


(Pdb+ is maintained by the SeleniumBase Dev Team)