summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-09-25 09:13:00 (GMT)
committerGitHub <noreply@github.com>2019-09-25 09:13:00 (GMT)
commitd3666945d78508970002653c4d46221a4306f55b (patch)
treeee263653a5b5ae1ffbfc06464ab6e35ce7cead99
parent4042e1afd252858de53e2b79d946a51a0182d1ba (diff)
downloadcpython-d3666945d78508970002653c4d46221a4306f55b.zip
cpython-d3666945d78508970002653c4d46221a4306f55b.tar.gz
cpython-d3666945d78508970002653c4d46221a4306f55b.tar.bz2
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 (cherry picked from commit 17deb16883fa574a86e42551cc37f044182347ad) Co-authored-by: Emmanuel Arias <emmanuelarias30@gmail.com>
-rw-r--r--Doc/library/asyncio-task.rst12
-rw-r--r--Lib/asyncio/runners.py4
2 files changed, 16 insertions, 0 deletions
diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst
index 29ccafe..a9f6f9c 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
**Important:** this function has been added to asyncio in
Python 3.7 on a :term:`provisional basis <provisional api>`.
diff --git a/Lib/asyncio/runners.py b/Lib/asyncio/runners.py
index 5fbab03..df68638 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():