Skip to main content

Pdb with Rich library.

Project description

pdbr

PyPI version Python Version

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

rich.inspect

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pdbr-0.5.7.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pdbr-0.5.7-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file pdbr-0.5.7.tar.gz.

File metadata

  • Download URL: pdbr-0.5.7.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.6.13 Linux/5.8.0-1033-azure

File hashes

Hashes for pdbr-0.5.7.tar.gz
Algorithm Hash digest
SHA256 42449e9eb3a1fa4459b71639fc85362f99609407911994facd8664f6ae6b31c1
MD5 cfb36a945b78cc6dc7b6ab070d74db2b
BLAKE2b-256 a4c35f578133cc10925d73e271ed3cb00880522c4be87c7f0cc6d965ec26de04

See more details on using hashes here.

File details

Details for the file pdbr-0.5.7-py3-none-any.whl.

File metadata

  • Download URL: pdbr-0.5.7-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.6.13 Linux/5.8.0-1033-azure

File hashes

Hashes for pdbr-0.5.7-py3-none-any.whl
Algorithm Hash digest
SHA256 ecdb23a3815c4b626cc53488841723bc583ff895eaa5b1a45271d760ecf49422
MD5 67172cebe6064519d456e0ea92ca045b
BLAKE2b-256 c9c73fb50f8da3b313f26315bd58f72319a848a4cfb7cb6852c7cab959bef866

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page