@@ -361,7 +361,7 @@ Creating Futures and Tasks
361361
362362 .. versionadded :: 3.5.2
363363
364- .. method :: loop.create_task(coro, *, name=None, context=None, eager_start=None)
364+ .. method :: loop.create_task(coro, *, name=None, context=None, eager_start=None, **kwargs )
365365
366366 Schedule the execution of :ref: `coroutine <coroutine >` *coro *.
367367 Return a :class: `Task ` object.
@@ -370,6 +370,10 @@ Creating Futures and Tasks
370370 for interoperability. In this case, the result type is a subclass
371371 of :class: `Task `.
372372
373+ The full function signature is largely the same as that of the
374+ :class: `Task ` constructor (or factory) - all of the keyword arguments to
375+ this function are passed through to that interface.
376+
373377 If the *name * argument is provided and not ``None ``, it is set as
374378 the name of the task using :meth: `Task.set_name `.
375379
@@ -388,8 +392,15 @@ Creating Futures and Tasks
388392 .. versionchanged :: 3.11
389393 Added the *context * parameter.
390394
395+ .. versionchanged :: 3.13.3
396+ Added ``kwargs `` which passes on arbitrary extra parameters, including ``name `` and ``context ``.
397+
398+ .. versionchanged :: 3.13.4
399+ Rolled back the change that passes on *name * and *context * (if it is None),
400+ while still passing on other arbitrary keyword arguments (to avoid breaking backwards compatibility with 3.13.3).
401+
391402 .. versionchanged :: 3.14
392- Added the *eager_start * parameter.
403+ All * kwargs * are now passed on. The *eager_start * parameter works with eager task factories .
393404
394405.. method :: loop.set_task_factory(factory)
395406
@@ -402,6 +413,16 @@ Creating Futures and Tasks
402413 event loop, and *coro * is a coroutine object. The callable
403414 must pass on all *kwargs *, and return a :class: `asyncio.Task `-compatible object.
404415
416+ .. versionchanged :: 3.13.3
417+ Required that all *kwargs * are passed on to :class: `asyncio.Task `.
418+
419+ .. versionchanged :: 3.13.4
420+ *name * is no longer passed to task factories. *context * is no longer passed
421+ to task factories if it is ``None ``.
422+
423+ .. versionchanged :: 3.14
424+ *name * and *context * are now unconditionally passed on to task factories again.
425+
405426.. method :: loop.get_task_factory()
406427
407428 Return a task factory or ``None `` if the default one is in use.
0 commit comments