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.

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.

Usage

PDB Color is a drop-in replacement for PDB that simply adds color to PDB's outputs. See the PDB documentation for a PDB introduction.

PDB Color also has tab 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.

Examples

Using PDB:

Code example using PDB

Using PDB Color:

Code example using PDB

Pytest

In pytest, using breakpoint() in your unit tests will put you into PDB by default. To use PDB Color instead, set --pdbcls=pdbcolor:PdbColor. For example:

python3 -m pytest --pdbcls=pdbcolor:PdbColor

To invoke PDB Color upon the failure of a test (post-mortem) rather than a breakpoint, use the --pdb option:

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

If you get a pytest OS error such as:

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

And if you have changed your PYTHONBREAKPOINT environment variable to be pdbcolor.set_trace, try changing the PYTHONBREAKPOINT variable back to pdbcolor.set_trace. For example:

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

Pytest should use PDB Color as expected.

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.3.5.tar.gz (6.8 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.3.5-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pdbcolor-0.3.5.tar.gz
Algorithm Hash digest
SHA256 d6e45ff6f361dee729795235a516f202b145d9ec748b67aa767fef82bf41c1da
MD5 9387b85ac3771840584659db212a30d9
BLAKE2b-256 9edef52a45d2822b380d1fb8f2556b4670ffab9302baa5381d5866ab50ad454d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pdbcolor-0.3.5.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.3.5-py3-none-any.whl.

File metadata

  • Download URL: pdbcolor-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 5.4 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.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9407ad64f9d0280317f3bc3a13a0ed3c9dcdde2ad0fe245875c8a0cbe84ab0a8
MD5 8a8d8acf1dafa812790b049f4e3b4c09
BLAKE2b-256 a832019c8f136b290dc848e6d0d690838de11a0b36b4bcbf0b1ff30e28ae0f31

See more details on using hashes here.

Provenance

The following attestation bundles were made for pdbcolor-0.3.5-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