Pdb with Rich library.
Project description
pdbr
pdbr is intended to make the PDB results more colorful. it uses Rich library to carry out that.
Installing
Install with pip
or your favorite PyPi package manager.
pip install pdbr
Breakpoint
In order to use breakpoint()
, set PYTHONBREAKPOINT with "pdbr.set_trace"
import os
os.environ["PYTHONBREAKPOINT"] = "pdbr.set_trace"
or just import pdbr
import pdbr
New commands
(ic)ecream
🍦 Icecream print.
(i)nspect / inspectall | ia
search | src
Search a phrase in the current frame. In order to repeat the last one, type / character as arg.
(v)ars
Get the local variables list as table.
varstree | vt
Get the local variables list as tree.
Config
Style
In order to use Rich's traceback, style, and theme, set setup.cfg.
[pdbr]
style = yellow
use_traceback = True
theme = friendly
History
store_history setting is used to keep and reload history, even the prompt is closed and opened again.
[pdbr]
...
store_history=.pdbr_history
Celery
In order to use Celery remote debugger with pdbr, use celery_set_trace
as below sample. For more information see the Celery user guide.
from celery import Celery
app = Celery('tasks', broker='pyamqp://guest@localhost//')
@app.task
def add(x, y):
import pdbr; pdbr.celery_set_trace()
return x + y
Telnet
Instead of using telnet
or nc
, in terms of using pdbr style, pdbr_telnet
command can be used.
IPython
Being able to use ipython, install pdbr with it like below or just install your own version.
pip install pdbr[ipython]
pytest
In order to user pdbr
with pytest --pdb
flag, add addopts
setting in your pytest.ini.
[pytest]
addopts: --pdbcls=pdbr:RichPdb
Django DiscoverRunner
To being activated the pdb in Django test, change TEST_RUNNER
like below. Unlike Django (since you are not allowed to use for smaller versions than 3), pdbr runner can be used for version 1.8 and subsequent versions.
TEST_RUNNER = "pdbr.runner.PdbrDiscoverRunner"
Django Middleware
In order to catch the problematic codes with post mortem, place the middleware class.
MIDDLEWARE = (
...
"pdbr.middleware.PdbrMiddleware",
)
Shell
Running pdbr
command in terminal starts an IPython
terminal app instance. Unlike default TerminalInteractiveShell
, the new shell uses pdbr as debugger class instead of ipdb
.
%debug magic sample
Terminal
Django shell sample
Vscode user snippet
To create or edit your own snippets, select User Snippets under File > Preferences (Code > Preferences on macOS), and then select python.json.
Place the below snippet in json file for pdbr.
{
...
"pdbr": {
"prefix": "pdbr",
"body": "import pdbr; pdbr.set_trace()",
"description": "Code snippet for pdbr debug"
},
}
For Celery debug.
{
...
"rdbr": {
"prefix": "rdbr",
"body": "import pdbr; pdbr.celery_set_trace()",
"description": "Code snippet for Celery pdbr debug"
},
}
Samples
Traceback
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.