Skip to main content

A simple package to add code highlighting to the python debugger (PDB).

Project description

PDB Color

Add some color to the python debugger.

Using PDB:

Code example using PDB

Using PDB Color:

Code example using PDB

Installation

Install with pip.

pip install pdbcolor

Setup

Python can be configured to use PDB Color by changing the PYTHONBREAKPOINT environment variable. To use PDB Color temporarily, add the PYTHONBREAKPOINT=pdbcolor.set_trace prefix before running your python script:

PYTHONBREAKPOINT=pdbcolor.set_trace python3 main.py

To make PDB Color the default for all Python sessions, set the PYTHONBREAKPOINT environment variable to pdbcolor.set_trace. On Mac and Linux, you can do this with the export command:

export PYTHONBREAKPOINT=pdbcolor.set_trace

Add this line to your terminal configuration file (e.g. .bashrc or .zshrc) to ensure the setting persists across terminal settings.

Autocomplete

PDB Color also has autocompletion by default which can be triggered using the TAB key. For example:

$ python3 main.py
> /home/alex/documents/pdbcolor/main.py(9)<module>()
-> y = 2
(Pdb) str.
str.capitalize(    str.isalpha(       str.ljust(         str.rpartition(
str.casefold(      str.isascii(       str.lower(         str.rsplit(
str.center(        str.isdecimal(     str.lstrip(        str.rstrip(
str.count(         str.isdigit(       str.maketrans(     str.split(
str.encode(        str.isidentifier(  str.mro()          str.splitlines(
str.endswith(      str.islower(       str.partition(     str.startswith(
str.expandtabs(    str.isnumeric(     str.removeprefix(  str.strip(
str.find(          str.isprintable(   str.removesuffix(  str.swapcase(
str.format(        str.isspace(       str.replace(       str.title(
str.format_map(    str.istitle(       str.rfind(         str.translate(
str.index(         str.isupper(       str.rindex(        str.upper(
str.isalnum(       str.join(          str.rjust(         str.zfill(
(Pdb) str.

Post-mortem debugging

PDB can can be triggered post-mortem (after an exception has been raised) with the following command:

python3 -m pdb -c continue main.py

PDB Color can be used instead by replacing pdb with pdbcolor.

python3 -m pdbcolor -c continue main.py

Pytest

To use PDB Color with pytest, use --pdbcls=pdbcolor:PdbColor. For example:

python3 -m pytest --pdbcls=pdbcolor:PdbColor

This drops you into PDB Color when a breakpoint is reached.

If you get a pytest OS error such as:

OSError: pytest: reading from stdin while output is captured!  Consider using `-s`.

Using the -s flag stops the error but, for those interested, the error is usually caused by setting PYTHONBREAKPOINT=pdbcolor.set_trace. Changing this back to its default value should stop the error without needing the -s flag. For example:

PYTHONBREAKPOINT=pdb.set_trace python3 -m pytest --pdbcls=pdbcolor:PdbColor

To save on typing, consider adding the following aliases to your terminal configuration file:

alias pdb='PYTHONBREAKPOINT=pdb.set_trace'
alias pdc='PYTHONBREAKPOINT=pdbcolor.set_trace'

The previous command then becomes:

pdb python3 -m pytest --pdbcls=pdbcolor:PdbColor

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

pdbcolor-0.4.0.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

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

pdbcolor-0.4.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file pdbcolor-0.4.0.tar.gz.

File metadata

  • Download URL: pdbcolor-0.4.0.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pdbcolor-0.4.0.tar.gz
Algorithm Hash digest
SHA256 e1adeb06a3d0af8d904f2639d96c03cea82d3a40475ebf1a50c037f1094a2eb6
MD5 7641cba6d1248b5777d23862365bc643
BLAKE2b-256 f583b7ffbdfd07a7d9854744da13cb21c3827aa28c8c1292b02fe4d35f43bdeb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pdbcolor-0.4.0.tar.gz:

Publisher: workflow.yml on Alex-JG3/pdbcolor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pdbcolor-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: pdbcolor-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pdbcolor-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ddf1bc2cb36f88e80486a1f9a971fedf4166d0aa55620079c4a2d38e3a7296e
MD5 daa79948c57bc6e8030d53d0528ced17
BLAKE2b-256 3bd5fc65cd381a3405261d72ea4067f86ca9501eb2977d95e9ed7e210a56572c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pdbcolor-0.4.0-py3-none-any.whl:

Publisher: workflow.yml on Alex-JG3/pdbcolor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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