]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Remove draft status. Add asyncio REPL example (GH-16785)
authorRaymond Hettinger <rhettinger@users.noreply.github.com>
Mon, 14 Oct 2019 16:01:05 +0000 (09:01 -0700)
committerGitHub <noreply@github.com>
Mon, 14 Oct 2019 16:01:05 +0000 (09:01 -0700)
Doc/whatsnew/3.8.rst

index 8108fb7e14704a7749a91f4ce749dd615c7aa988..85351e10e69944675886a009c8e184bb833de0d0 100644 (file)
 This article explains the new features in Python 3.8, compared to 3.7.
 For full details, see the :ref:`changelog <changelog>`.
 
-Prerelease users should be aware that this document is currently in
-draft form. It will be updated as Python 3.8 moves towards release, so
-it's worth checking back even after reading earlier versions. Some
-notable items not yet covered are:
-
-* :pep:`578` - Runtime audit hooks for potentially sensitive operations
-* ``python -m asyncio`` runs a natively async REPL
-
 .. testsetup::
 
    from datetime import date
@@ -287,6 +279,18 @@ calculations can be shown::
 (Contributed by Eric V. Smith and Larry Hastings in :issue:`36817`.)
 
 
+PEP 578: Python Runtime Audit Hooks
+-----------------------------------
+
+The PEP adds an Audit Hook and Verified Open Hook. Both are available from
+Python and native code, allowing applications and frameworks written in pure
+Python code to take advantage of extra notifications, while also allowing
+embedders or system administrators to deploy builds of Python where auditing is
+always enabled.
+
+See :pep:`578` for full details.
+
+
 PEP 587: Python Initialization Configuration
 --------------------------------------------
 
@@ -584,6 +588,23 @@ The :func:`ast.parse` function has some new flags:
 asyncio
 -------
 
+Running ``python -m asyncio`` launches a natively async REPL.  This allows rapid
+experimentation with code that has a top-level :keyword:`await`.  There is no
+longer a need to directly call ``asyncio.run()`` which would spawn a new event
+loop on every invocation:
+
+.. code-block:: none
+
+    $ python -m asyncio
+    asyncio REPL 3.8.0
+    Use "await" directly instead of "asyncio.run()".
+    Type "help", "copyright", "credits" or "license" for more information.
+    >>> import asyncio
+    >>> await asyncio.sleep(10, result='hello')
+    hello
+
+(Contributed by Yury Selivanov in :issue:`37028`.)
+
 On Windows, the default event loop is now :class:`~asyncio.ProactorEventLoop`.
 (Contributed by Victor Stinner in :issue:`34687`.)