Skip to content

Commit

Permalink
gh-104254: Document the optional keyword-only "context" argument to T…
Browse files Browse the repository at this point in the history
…ask constructor (#104251)

(This was added in 3.11. It was already documented for `create_task()`, but not for `Task()`.)
  • Loading branch information
itamaro authored May 7, 2023
1 parent 42f54d1 commit 4ee2068
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions Doc/library/asyncio-task.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1014,7 +1014,7 @@ Introspection
Task Object
===========

.. class:: Task(coro, *, loop=None, name=None)
.. class:: Task(coro, *, loop=None, name=None, context=None)

A :class:`Future-like <Future>` object that runs a Python
:ref:`coroutine <coroutine>`. Not thread-safe.
Expand Down Expand Up @@ -1049,9 +1049,10 @@ Task Object
APIs except :meth:`Future.set_result` and
:meth:`Future.set_exception`.

Tasks support the :mod:`contextvars` module. When a Task
is created it copies the current context and later runs its
coroutine in the copied context.
An optional keyword-only *context* argument allows specifying a
custom :class:`contextvars.Context` for the *coro* to run in.
If no *context* is provided, the Task copies the current context
and later runs its coroutine in the copied context.

.. versionchanged:: 3.7
Added support for the :mod:`contextvars` module.
Expand All @@ -1063,6 +1064,9 @@ Task Object
Deprecation warning is emitted if *loop* is not specified
and there is no running event loop.

.. versionchanged:: 3.11
Added the *context* parameter.

.. method:: done()

Return ``True`` if the Task is *done*.
Expand Down

0 comments on commit 4ee2068

Please sign in to comment.