tbtrim
is a utility to trim Python traceback information. By assigning user-refined 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.
Simply run the following to install the current version from PyPI:
$ pip install tbtrim
Or install the latest version from the git repository:
git clone https://github.com/gousaiyang/tbtrim.git
cd tbtrim
pip install -e .
# and to update at any time
git pull
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 returnsbool
(returningTrue
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
andexclude
in a strict mode (settingTrue
usesis
to check,False
usesissubclass
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).