https://github.com/gousaiyang/tbtrim
A utility to trim Python traceback information.
https://github.com/gousaiyang/tbtrim
excepthook exception traceback
Last synced: 14 days ago
JSON representation
A utility to trim Python traceback information.
- Host: GitHub
- URL: https://github.com/gousaiyang/tbtrim
- Owner: gousaiyang
- License: mit
- Created: 2019-01-22T14:21:00.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-04-07T23:46:44.000Z (about 4 years ago)
- Last Synced: 2025-03-18T06:45:48.263Z (about 1 month ago)
- Topics: excepthook, exception, traceback
- Language: Python
- Size: 25.4 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tbtrim
[](https://pepy.tech/count/tbtrim)
[](https://pypi.org/project/tbtrim)
[](https://pypi.org/project/tbtrim)
[](https://github.com/gousaiyang/tbtrim/actions?query=workflow%3ABuild)`tbtrim` is a utility to trim Python traceback information. By assigning user-refined [`sys.excepthook`](https://docs.python.org/3/library/sys.html#sys.excepthook), one can easily customize the behavior after an exception is raise and uncaught, and just before the interpreter prints out the given traceback and exception to `sys.stderr`.
In a more human-readable way, `tbtrim` is to let you handle the last words of a program when it exits because of an exception.
## Installation
Simply run the following to install the current version from PyPI:
```shell
$ pip install tbtrim
```Or install the latest version from the git repository:
```shell
git clone https://github.com/gousaiyang/tbtrim.git
cd tbtrim
pip install -e .
# and to update at any time
git pull
```## Usage
> **set_trim_rule**(*predicate*, *target*=BaseException, *exclude*=None, *strict*=False, *exception*=None)
Set the rule for trimming traceback (will set `sys.excepthook` and `threading.excepthook` if available).
You can determine whether to start trimming traceback items based on the filename (using `predicate`), and can choose to trim traceback only for some certain exceptions (using `target` and `exclude`).
**Args:**
- **predicate** (*function*): a function which takes one `str` parameter (the filename of a traceback item) and returns `bool` (returning `True` indicates that this traceback item and the following items should be trimmed)
- **target** (*class_or_tuple*): an exception or a tuple of exceptions may be given to trim traceback only for those exceptions
- **exclude** (*class_or_tuple*): an exception or a tuple of exceptions may be given to exclude them from traceback trimming
- **strict** (*bool*): indicate whether to check an exception against `target` and `exclude` in a strict mode (setting `True` uses `is` to check, `False` uses `issubclass` to check)
- **exception** (*class_or_tuple*): this is a deprecated alias of `exclude`, retained for backward compatibility> **clear_trim_rule**()
Clear the rule for trimming traceback (restore the excepthooks).