[Python-checkins] bpo-42392: Mention loop removal in whatsnew for 3.10 (GH-24256)

miss-islington webhook-mailer at python.org
Wed Jan 20 19:16:28 EST 2021


https://github.com/python/cpython/commit/dcea78ff53d02733ac5983255610b651aa1c0034
commit: dcea78ff53d02733ac5983255610b651aa1c0034
branch: master
author: Ken Jin <28750310+Fidget-Spinner at users.noreply.github.com>
committer: miss-islington <31488909+miss-islington at users.noreply.github.com>
date: 2021-01-20T16:16:12-08:00
summary:

bpo-42392: Mention loop removal in whatsnew for 3.10 (GH-24256)



@vstinner [noticed on python-dev](https://mail.python.org/archives/list/python-dev@python.org/thread/O3T7SK3BGMFWMLCQXDODZJSBL42AUWTR/) that there is no what's new or porting entry for removal of asyncio ``loop`` parameter. 

This patch adds a basic guide.

Co-Authored-By: Kyle Stanley <aeros167 at gmail.com>

files:
M Doc/whatsnew/3.10.rst

diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst
index 7fe2b96a00e1b..0fca2e8b8c311 100644
--- a/Doc/whatsnew/3.10.rst
+++ b/Doc/whatsnew/3.10.rst
@@ -558,6 +558,23 @@ Removed
   the :mod:`collections` module.
   (Contributed by Victor Stinner in :issue:`37324`.)
 
+* The ``loop`` parameter has been removed from most of :mod:`asyncio`\ 's
+  :doc:`high-level API <../library/asyncio-api-index>` following deprecation
+  in Python 3.8.  The motivation behind this change is multifold:
+
+  1. This simplifies the high-level API.
+  2. The functions in the high-level API have been implicitly getting the
+     current thread's running event loop since Python 3.7.  There isn't a need to
+     pass the event loop to the API in most normal use cases.
+  3. Event loop passing is error-prone especially when dealing with loops
+     running in different threads.
+
+  Note that the low-level API will still accept ``loop``.
+  See `Changes in the Python API`_ for examples of how to replace existing code.
+
+  (Contributed by Yurii Karabas, Andrew Svetlov, Yury Selivanov and Kyle Stanley
+  in :issue:`42392`.)
+
 
 Porting to Python 3.10
 ======================
@@ -596,6 +613,26 @@ Changes in the Python API
   a 16-bit unsigned integer.
   (Contributed by Erlend E. Aasland in :issue:`42393`.)
 
+* The ``loop`` parameter has been removed from most of :mod:`asyncio`\ 's
+  :doc:`high-level API <../library/asyncio-api-index>` following deprecation
+  in Python 3.8.
+
+  A coroutine that currently look like this::
+
+     async def foo(loop):
+         await asyncio.sleep(1, loop=loop)
+
+  Should be replaced with this::
+
+     async def foo():
+         await asyncio.sleep(1)
+
+  If ``foo()`` was specifically designed *not* to run in the current thread's
+  running event loop (e.g. running in another thread's event loop), consider
+  using :func:`asyncio.run_coroutine_threadsafe` instead.
+
+  (Contributed by Yurii Karabas, Andrew Svetlov, Yury Selivanov and Kyle Stanley
+  in :issue:`42392`.)
 
 CPython bytecode changes
 ========================



More information about the Python-checkins mailing list