Currently the traceback output goes something like this (with pytest --tb=native):
Traceback (most recent call last):
<stuff in my project>
<4+ lines inside grappa>
AssertionError: Oops! Something went wrong!
<grappa custom formatting>
It would be nice if the lines originating from grappa internals could be hidden from the traceback output. pytest has __tracebackhide__ which can be set on a whole module IIRC, but that won't have any effect with --tb=native.
Now, the extent to which this is possible, is probably limited. sys.excepthook might be an option, but should be opt-in as it may override other custom traceback formatters. Also, AFAIK
pytest ignores this hook completely and prints out their exceptions on their own. Maybe catch the exception at the top-level of the library, adjust the traceback to remove the library frames, and re-raise? Or a pytest formatter plugin to complement the excepthook?
Currently the traceback output goes something like this (with
pytest --tb=native
):It would be nice if the lines originating from grappa internals could be hidden from the traceback output. pytest has
__tracebackhide__
which can be set on a whole module IIRC, but that won't have any effect with--tb=native
.Now, the extent to which this is possible, is probably limited.
sys.excepthook
might be an option, but should be opt-in as it may override other custom traceback formatters. Also, AFAIK pytest ignores this hook completely and prints out their exceptions on their own. Maybe catch the exception at the top-level of the library, adjust the traceback to remove the library frames, and re-raise? Or a pytest formatter plugin to complement theexcepthook
?