From: Guido van Rossum Date: Tue, 20 May 2025 14:30:18 +0000 (-0400) Subject: [3.13] gh-128307: Update what's new in 3.13 with create_task changes of asyncio ... X-Git-Tag: v3.13.4~80 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=eca8ff1ae2bfcb870d9e0d3b0bc240a055b43edd;p=thirdparty%2FPython%2Fcpython.git [3.13] gh-128307: Update what's new in 3.13 with create_task changes of asyncio (#134304) (#134335) (It's complicated.) Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> --- diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst index 3c991d8f0952..aae9ef1cce1b 100644 --- a/Doc/whatsnew/3.13.rst +++ b/Doc/whatsnew/3.13.rst @@ -739,6 +739,22 @@ asyncio never awaited). (Contributed by Arthur Tacca and Jason Zhang in :gh:`115957`.) +* The function and methods named ``create_task`` have received a new + ``**kwargs`` argument that is passed through to the task constructor. + This change was accidentally added in 3.13.3, + and broke the API contract for custom task factories. + Several third-party task factories implemented workarounds for this. + In 3.13.4 and later releases the old factory contract is honored + once again (until 3.14). + To keep the workarounds working, the extra ``**kwargs`` argument still + allows passing additional keyword arguments to :class:`~asyncio.Task` + and to custom task factories. + + This affects the following function and methods: + :meth:`asyncio.create_task`, + :meth:`asyncio.loop.create_task`, + :meth:`asyncio.TaskGroup.create_task`. + (Contributed by Thomas Grainger in :gh:`128307`.) base64 ------