-
-
Notifications
You must be signed in to change notification settings - Fork 32.5k
Open
Labels
stdlibPython modules in the Lib dirPython modules in the Lib dirtopic-asynciotype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Bug description:
There may be a good reason for this I am not seeing, but in the asyncio.Timeout.__aexit__
handler, the exception group handling seems too narrow:
cpython/Lib/asyncio/timeouts.py
Lines 113 to 119 in 9743d06
if issubclass(exc_type, exceptions.CancelledError): | |
raise TimeoutError from exc_val | |
elif exc_val is not None: | |
self._insert_timeout_error(exc_val) | |
if isinstance(exc_val, ExceptionGroup): | |
for exc in exc_val.exceptions: | |
self._insert_timeout_error(exc) |
Given exc_val
itself can be a BaseException
and _insert_timeout_error
takes a BaseException
as an argument, I fail to see a reason not to check for superclass BaseExceptionGroup
instead.
cpython/Lib/asyncio/timeouts.py
Line 133 in 9743d06
def _insert_timeout_error(exc_val: BaseException) -> None: |
This no longer impacts me as I implemented what I was aiming for in a better way, but it still looks like a bug. Is it?
CPython versions tested on:
3.13
Operating systems tested on:
Linux
Metadata
Metadata
Assignees
Labels
stdlibPython modules in the Lib dirPython modules in the Lib dirtopic-asynciotype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Projects
Status
Todo