From: Emmanuel Arias Date: Wed, 25 Sep 2019 08:53:49 +0000 (-0300) Subject: bpo-38260: Add Docs on asyncio.run (GH-16337) X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=17deb16883fa574a86e42551cc37f044182347ad;p=python bpo-38260: Add Docs on asyncio.run (GH-16337) Add docs about return and raise exception on asyncio.run https://bugs.python.org/issue38260 Automerge-Triggered-By: @asvetlov --- diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst index 1fb8829358..9f55a3534a 100644 --- a/Doc/library/asyncio-task.rst +++ b/Doc/library/asyncio-task.rst @@ -225,6 +225,18 @@ Running an asyncio Program the end. It should be used as a main entry point for asyncio programs, and should ideally only be called once. + Return a result of *coro* execution, or raise a :exc:`RuntimeError` + if ``asyncio.run()`` is called from a running event loop, or a + :exc:`ValueError` if *coro* is not a courutine. + + Example:: + + async def main(): + await asyncio.sleep(1) + print('hello') + + asyncio.run(main()) + .. versionadded:: 3.7 .. versionchanged:: 3.9 diff --git a/Lib/asyncio/runners.py b/Lib/asyncio/runners.py index 6c87747e77..904102bf82 100644 --- a/Lib/asyncio/runners.py +++ b/Lib/asyncio/runners.py @@ -21,6 +21,10 @@ def run(main, *, debug=False): It should be used as a main entry point for asyncio programs, and should ideally only be called once. + Return a result of *coro* execution, or raise a RuntimeError + if `asyncio.run()`is called from a running event loop, or a ValueError + if `main` is not a courutine. + Example: async def main():