-
-
Notifications
You must be signed in to change notification settings - Fork 32.4k
Closed
Labels
3.12only security fixesonly security fixes3.13bugs and security fixesbugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Bug description:
when running agen.aclose().close()
it should throw GeneratorExit into the coroutine and raise RuntimeError from .close()
:
import types
@types.coroutine
def _async_yield(v):
return (yield v)
async def agenfn():
try:
yield 1
finally:
try:
await _async_yield(2)
except GeneratorExit:
print("generator exit")
await _async_yield(3)
agen = agenfn()
try:
anext(agen).send(None)
except StopIteration as e:
print(e.value)
try:
agen.aclose().close()
except RuntimeError:
print("good")
else:
print("bad")
prints:
1
bad
Exception ignored in: <async_generator object agenfn at 0x7e0c43b09620>
RuntimeError: async generator ignored GeneratorExit
CPython versions tested on:
3.11, 3.12, 3.13, CPython main branch
Operating systems tested on:
Linux
Linked PRs
Metadata
Metadata
Assignees
Labels
3.12only security fixesonly security fixes3.13bugs and security fixesbugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error