The part that I really want is an ecosystem-wide “collection of exceptions” type, which enables nice features like good reporting, debugger support, and so on.
Most of that for me is Hypothesis’ report_multiple_bugs
setting: we collect exceptions from each failing input, and want to show the user each distinct error. Currently that means we just print each (trimmed) traceback - it works, but misses out on things like Pytests’s configurable colored and expanded tracebacks, debugger suport, and so on.
Review incoming - I found it very surprising that BaseExceptionGroup("", [Exception()])
returns a non-Base
exceptiongroup object, but the rest looks good.
From a few hours of experimenting, the only thing I’m missing is a way to annotate each nested exception. In my case that’s something like Falsifying example: test(x=False)
, but I think the same consideration applies to use motivated by callbacks (which does the exception come from?) or async tasks - the traceback alone is not always sufficient identifying information.
raise FalsifyingExample("test(x=False)") from err
for each of the nested exceptions provides a workaround, but that does feel like an ugly hack.