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

To use PDB Color, you must set the PYTHONBREAKPOINT environment variable to pdbcolor.set_trace. You can do this by setting PYTHONBREAKPOINT before your python command. For example:

PYTHONBREAKPOINT=pdbcolor.set_trace python3 main.py

For convenience, add an alias for the prefix above to your terminal configuration file (e.g. .bashrc or .zshrc). For example:

alias pdc='PYTHONBREAKPOINT=pdbcolor.set_trace'

This allows you to use PDB Color as follows:

pdc python3 main.py

You can avoid the prefix entirely by setting the PYTHONBREAKPOINT variable in every terminal session. You can do this in your .bashrc with the following:

export PYTHONBREAKPOINT=pdbcolor.set_trace

This can cause unusual behaviour especially when working with pytest, so it is generally recommended to use the pdc alias.

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

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.4.tar.gz (8.4 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.4-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pdbcolor-0.4.4.tar.gz
Algorithm Hash digest
SHA256 f6c0d0acefe939e596deb66b770133ffc1c26c1129bee3c374b0a2622a881fe7
MD5 cc65b5a05ffce399b2bf93ce2407f9b7
BLAKE2b-256 4909652acd514d082a65a36875404fc18083d8192112d5be4c2365a324466fe0

See more details on using hashes here.

Provenance

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

Publisher: workflow.yml on alex-gregory-ds/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.4-py3-none-any.whl.

File metadata

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

File hashes

Hashes for pdbcolor-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 51223c10fc72fdda0862b0b21a5f31637660c0130314309770ed9bd93e58758d
MD5 4f7b9211bb0b011835c9a9df5dc6fd8a
BLAKE2b-256 5efd5a2fda13be8509c15b48da2f95cc870e76638186f72f2334818e4f810934

See more details on using hashes here.

Provenance

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

Publisher: workflow.yml on alex-gregory-ds/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