nursery replaces custom ExceptionGroup subclasses with plain ExceptionGroups #3175
Open
Description
import trio
class MyExceptionGroup(ExceptionGroup):
pass
async def main():
async with trio.open_nursery():
raise MyExceptionGroup("hello", [ValueError("bad")])
trio.run(main)
output:
+ Exception Group Traceback (most recent call last):
| File "/home/graingert/projects/demo.py", line 11, in <module>
| trio.run(main)
| File "/home/graingert/.virtualenvs/anyio_fixture_methods/lib/python3.12/site-packages/trio/_core/_run.py", line 2306, in run
| raise runner.main_task_outcome.error
| File "/home/graingert/projects/demo.py", line 8, in main
| async with trio.open_nursery():
| File "/home/graingert/.virtualenvs/anyio_fixture_methods/lib/python3.12/site-packages/trio/_core/_run.py", line 959, in __aexit__
| raise combined_error_from_nursery
| ExceptionGroup: Exceptions from Trio nursery (1 sub-exception)
+-+---------------- 1 ----------------
| Exception Group Traceback (most recent call last):
| File "/home/graingert/projects/demo.py", line 9, in main
| raise MyExceptionGroup("hello", [ValueError("bad")])
| ExceptionGroup: hello (1 sub-exception)
+-+---------------- 1 ----------------
| ValueError: bad
+------------------------------------
expected output:
+ Exception Group Traceback (most recent call last):
| File "/home/graingert/projects/demo.py", line 11, in <module>
| trio.run(main)
| File "/home/graingert/.virtualenvs/anyio_fixture_methods/lib/python3.12/site-packages/trio/_core/_run.py", line 2306, in run
| raise runner.main_task_outcome.error
| File "/home/graingert/projects/demo.py", line 8, in main
| async with trio.open_nursery():
| File "/home/graingert/.virtualenvs/anyio_fixture_methods/lib/python3.12/site-packages/trio/_core/_run.py", line 959, in __aexit__
| raise combined_error_from_nursery
| ExceptionGroup: Exceptions from Trio nursery (1 sub-exception)
+-+---------------- 1 ----------------
| Exception Group Traceback (most recent call last):
| File "/home/graingert/projects/demo.py", line 9, in main
| raise MyExceptionGroup("hello", [ValueError("bad")])
| MyExceptionGroup: hello (1 sub-exception)
+-+---------------- 1 ----------------
| ValueError: bad
+------------------------------------
Metadata
Assignees
Labels
No labels