GeezerVison is showing github.com — Remove `yield from` usage from asyncio tests · Issue #100113 · python/cpython
Remove yield from usage from asyncio tests #100113DescriptionSupport for yield from was deprecated and removed so it should be removed.
See
|
# The indirection fut->child_coro is needed since otherwise the |
|
# gathering task is done at the same time as the child future |
|
def child_coro(): |
|
return (yield from fut) |
|
gather_future = asyncio.gather(child_coro()) |
|
return asyncio.ensure_future(gather_future) |
|
gather_task = loop.run_until_complete(create()) |
|
|
Linked PRs
Activityvstinner commented on Dec 8, 2022 There are a few yield from in asyncio tests (Lib/test/test_asyncio/):
test_futures.py:296: x = yield from f
test_futures.py:298: y = yield from f
test_futures.py:303: self.assertEqual(next(g), f) # First yield from f.
test_futures.py:306: # The second "yield from f" does not yield f.
test_futures.py:408: yield from fut
test_pep492.py:152: yield from ()
test_sslproto.py:99: # yield from waiter hang if lost_connection was called.
test_tasks.py:2096: return (yield from fut)
utils.py:271: yield from _run_test_server(address=path, use_ssl=use_ssl,
utils.py:278: yield from _run_test_server(address=(host, port), use_ssl=use_ssl,
added a commit that references this issue on Dec 9, 2022GH-100113: remove remaining `yield from` usage from `asyncio` tests (#… kumaraditya303 commented on Dec 9, 2022 ContributorAuthor More actions
There are a few yield from in asyncio tests (Lib/test/test_asyncio/):
I think those are testing the internal implementation of futures and they are not used with asyncio APIs. I don't think they should be changed to await. gvanrossum commented on Dec 10, 2022 There's a comment referencing yield from on line 66 of asyncio/futures.py that probably should be updated, if indeed we are dropping (or have dropped) yield from support. Similar on line 292 (seems to refer to the same thing).
Next, in asyncio/tasks.py, line 316 there's an error message complaining about yield instead of yield from. Should that be await too? Again on line 327. The same error messages also occur in _asynciomodule.c.
Then there's _wrap_awaitable(), also in tasks.py, which on line 687 has a yield from.
But maybe I'm not understanding how yield from is used here??? kumaraditya303 commented on Mar 16, 2023 ContributorAuthor More actions
Then there's _wrap_awaitable(), also in tasks.py, which on line 687 has a yield from.
This has been removed now.
Next, in asyncio/tasks.py, line 316 there's an error message complaining about yield instead of yield from. Should that be await too? Again on line 327. The same error messages also occur in _asynciomodule.c.
That's debugging aid for people who are writing their own awaitables with custom __await__ method. kumaraditya303 commented on Mar 19, 2023 ContributorAuthor More actions Closing this, anything left can be handled in #102748
MetadataMetadataStatusShow more project fields
DevelopmentNo branches or pull requestsIssue actions
|