Skip to main content

Automatic installation of Rich's traceback handler

Project description

rich-tracebacks

PyPI - Python Version PyPI GitHub release (latest SemVer) PyPI - License

rich-tracebacks automates the installation of Rich's traceback handler in Python programs. Compared to Rich's own sanctioned method of automatically installing its traceback handler, rich-tracebacks is markedly simpler and agnostic to your virtual environment.

Installation

pip install rich-tracebacks

Usage

Enabling

Set the RICH_TRACEBACKS environment variable. The value of the variable doesn't matter, but we'll use 1 as an example.

export RICH_TRACEBACKS=1

That's it. Rich's traceback handler will be automatically installed each time you run your program.

Disabling

Unset the RICH_TRACEBACKS environment variable.

unset RICH_TRACEBACKS

Configuration

You can configure the traceback handler with its supported options by creating an rt_config.py file at your project's root. The file should contain a dictionary named config that maps option names to their intended values. For example:

# rt_config.py

config = {
    "show_locals": True,
    "width": 120,
    "theme": "monokai",
    ...
}

Options that are not defined in rt_config.py will fall back to their default values. If rt_config.py does not exist, all options will fall back to their default values.

A note on the suppress option

Rich's traceback handler supports a suppress option to which you can pass an iterable of modules and paths to be excluded from tracebacks. To suppress a module, you would normally need to import the module and then pass the module object to the suppress option. For example:

import loctocat
from rich.traceback import install

install(suppress=[loctocat])

With rich-tracebacks, you also have the option of simply passing the module's name as a string. For example:

# rt_config.py

config = {
    "suppress": ["loctocat"],
    ...
}

rich-tracebacks will do the work of importing the module for you and passing the module object to Rich. Names it can't import will be passed to Rich as literal strings, which will in turn treat them as paths.

FAQ

Q: I use PyCharm and rich-tracebacks doesn't seem to be working if my program calls sys.excepthook while I'm using the debugger, please help.

A: Congratulations on encountering this ridiculously niche isssue. Setting the RICH_TRACEBACKS_PYCHARM environment variable in the relevant run configuration will apply a very much experimental fix for this issue. If it doesn't work, open an issue and I will try to help you as best I can.

License

rich-tracebacks is licensed under the MIT License.

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

rich_tracebacks-1.2.1.tar.gz (4.0 kB view hashes)

Uploaded Source

Built Distribution

rich_tracebacks-1.2.1-py3-none-any.whl (4.1 kB view hashes)

Uploaded Python 3

Supported by

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