.. versionchanged:: 3.11
Passing coroutine objects to ``wait()`` directly is forbidden.
+ .. versionchanged:: 3.12
+ Added support for generators yielding tasks.
+
+
.. function:: as_completed(aws, *, timeout=None)
Run :ref:`awaitable objects <asyncio-awaitables>` in the *aws*
:mod:`asyncio` does not support legacy generator-based coroutines.
(Contributed by Kumar Aditya in :gh:`102748`.)
+* :func:`asyncio.wait` now accepts generators yielding tasks.
+ (Contributed by Kumar Aditya in :gh:`78530`.)
+
inspect
-------
self.assertEqual(res, 42)
self.assertAlmostEqual(0.15, loop.time())
+
+ def test_wait_generator(self):
+ async def func(a):
+ return a
+
+ loop = self.new_test_loop()
+
+ async def main():
+ tasks = (self.new_task(loop, func(i)) for i in range(10))
+ done, pending = await asyncio.wait(tasks, return_when=asyncio.ALL_COMPLETED)
+ self.assertEqual(len(done), 10)
+ self.assertEqual(len(pending), 0)
+
+ loop.run_until_complete(main())
+
+
def test_as_completed(self):
def gen():