2018-09-15 06:11:24 +08:00
|
|
|
.. currentmodule:: asyncio
|
|
|
|
|
|
|
|
|
2018-09-18 03:35:24 +08:00
|
|
|
====================
|
|
|
|
High-level API Index
|
|
|
|
====================
|
2018-09-15 06:11:24 +08:00
|
|
|
|
|
|
|
This page lists all high-level async/await enabled asyncio APIs.
|
|
|
|
|
|
|
|
|
|
|
|
Tasks
|
|
|
|
=====
|
|
|
|
|
|
|
|
Utilities to run asyncio programs, create Tasks, and
|
|
|
|
await on multiple things with timeouts.
|
|
|
|
|
|
|
|
.. list-table::
|
2018-09-15 07:57:11 +08:00
|
|
|
:widths: 50 50
|
2018-09-18 03:35:24 +08:00
|
|
|
:class: full-width-table
|
2018-09-15 06:11:24 +08:00
|
|
|
|
|
|
|
* - :func:`run`
|
|
|
|
- Create event loop, run a coroutine, close the loop.
|
|
|
|
|
|
|
|
* - :func:`create_task`
|
|
|
|
- Start an asyncio Task.
|
|
|
|
|
|
|
|
* - ``await`` :func:`sleep`
|
|
|
|
- Sleep for a number of seconds.
|
|
|
|
|
|
|
|
* - ``await`` :func:`gather`
|
|
|
|
- Schedule and wait for things concurrently.
|
|
|
|
|
|
|
|
* - ``await`` :func:`wait_for`
|
|
|
|
- Run with a timeout.
|
|
|
|
|
|
|
|
* - ``await`` :func:`shield`
|
|
|
|
- Shield from cancellation.
|
|
|
|
|
|
|
|
* - ``await`` :func:`wait`
|
2018-09-18 03:35:24 +08:00
|
|
|
- Monitor for completion.
|
2018-09-15 06:11:24 +08:00
|
|
|
|
|
|
|
* - :func:`current_task`
|
|
|
|
- Return the current Task.
|
|
|
|
|
|
|
|
* - :func:`all_tasks`
|
|
|
|
- Return all tasks for an event loop.
|
|
|
|
|
|
|
|
* - :class:`Task`
|
|
|
|
- Task object.
|
|
|
|
|
2020-05-19 11:03:28 +08:00
|
|
|
* - :func:`to_thread`
|
2021-03-14 09:00:28 +08:00
|
|
|
- Asynchronously run a function in a separate OS thread.
|
2020-05-19 11:03:28 +08:00
|
|
|
|
2018-09-18 03:35:24 +08:00
|
|
|
* - :func:`run_coroutine_threadsafe`
|
|
|
|
- Schedule a coroutine from another OS thread.
|
|
|
|
|
|
|
|
* - ``for in`` :func:`as_completed`
|
|
|
|
- Monitor for completion with a ``for`` loop.
|
|
|
|
|
2018-09-15 06:11:24 +08:00
|
|
|
|
|
|
|
.. rubric:: Examples
|
|
|
|
|
|
|
|
* :ref:`Using asyncio.gather() to run things in parallel
|
|
|
|
<asyncio_example_gather>`.
|
|
|
|
|
|
|
|
* :ref:`Using asyncio.wait_for() to enforce a timeout
|
|
|
|
<asyncio_example_waitfor>`.
|
|
|
|
|
|
|
|
* :ref:`Cancellation <asyncio_example_task_cancel>`.
|
|
|
|
|
|
|
|
* :ref:`Using asyncio.sleep() <asyncio_example_sleep>`.
|
|
|
|
|
|
|
|
* See also the main :ref:`Tasks documentation page <coroutine>`.
|
|
|
|
|
|
|
|
|
|
|
|
Queues
|
|
|
|
======
|
|
|
|
|
|
|
|
Queues should be used to distribute work amongst multiple asyncio Tasks,
|
|
|
|
implement connection pools, and pub/sub patterns.
|
|
|
|
|
|
|
|
|
|
|
|
.. list-table::
|
2018-09-15 07:57:11 +08:00
|
|
|
:widths: 50 50
|
2018-09-18 03:35:24 +08:00
|
|
|
:class: full-width-table
|
2018-09-15 06:11:24 +08:00
|
|
|
|
|
|
|
* - :class:`Queue`
|
|
|
|
- A FIFO queue.
|
|
|
|
|
|
|
|
* - :class:`PriorityQueue`
|
|
|
|
- A priority queue.
|
|
|
|
|
|
|
|
* - :class:`LifoQueue`
|
|
|
|
- A LIFO queue.
|
|
|
|
|
|
|
|
|
|
|
|
.. rubric:: Examples
|
|
|
|
|
|
|
|
* :ref:`Using asyncio.Queue to distribute workload between several
|
|
|
|
Tasks <asyncio_example_queue_dist>`.
|
|
|
|
|
|
|
|
* See also the :ref:`Queues documentation page <asyncio-queues>`.
|
|
|
|
|
|
|
|
|
|
|
|
Subprocesses
|
|
|
|
============
|
|
|
|
|
|
|
|
Utilities to spawn subprocesses and run shell commands.
|
|
|
|
|
|
|
|
.. list-table::
|
2018-09-15 07:57:11 +08:00
|
|
|
:widths: 50 50
|
2018-09-18 03:35:24 +08:00
|
|
|
:class: full-width-table
|
2018-09-15 06:11:24 +08:00
|
|
|
|
|
|
|
* - ``await`` :func:`create_subprocess_exec`
|
|
|
|
- Create a subprocess.
|
|
|
|
|
|
|
|
* - ``await`` :func:`create_subprocess_shell`
|
|
|
|
- Run a shell command.
|
|
|
|
|
|
|
|
|
|
|
|
.. rubric:: Examples
|
|
|
|
|
|
|
|
* :ref:`Executing a shell command <asyncio_example_subprocess_shell>`.
|
|
|
|
|
|
|
|
* See also the :ref:`subprocess APIs <asyncio-subprocess>`
|
|
|
|
documentation.
|
|
|
|
|
|
|
|
|
|
|
|
Streams
|
|
|
|
=======
|
|
|
|
|
|
|
|
High-level APIs to work with network IO.
|
|
|
|
|
|
|
|
.. list-table::
|
2018-09-15 07:57:11 +08:00
|
|
|
:widths: 50 50
|
2018-09-18 03:35:24 +08:00
|
|
|
:class: full-width-table
|
2018-09-15 06:11:24 +08:00
|
|
|
|
|
|
|
* - ``await`` :func:`open_connection`
|
2019-09-30 12:59:55 +08:00
|
|
|
- Establish a TCP connection.
|
2018-09-15 06:11:24 +08:00
|
|
|
|
|
|
|
* - ``await`` :func:`open_unix_connection`
|
2019-09-30 12:59:55 +08:00
|
|
|
- Establish a Unix socket connection.
|
2018-09-15 06:11:24 +08:00
|
|
|
|
2019-09-13 18:52:38 +08:00
|
|
|
* - ``await`` :func:`start_server`
|
2019-09-30 12:59:55 +08:00
|
|
|
- Start a TCP server.
|
2018-09-15 06:11:24 +08:00
|
|
|
|
2019-09-13 18:52:38 +08:00
|
|
|
* - ``await`` :func:`start_unix_server`
|
2019-09-30 12:59:55 +08:00
|
|
|
- Start a Unix socket server.
|
2019-09-13 18:52:38 +08:00
|
|
|
|
2018-09-15 06:11:24 +08:00
|
|
|
* - :class:`StreamReader`
|
2019-09-30 12:59:55 +08:00
|
|
|
- High-level async/await object to receive network data.
|
2018-09-15 06:11:24 +08:00
|
|
|
|
|
|
|
* - :class:`StreamWriter`
|
2019-09-30 12:59:55 +08:00
|
|
|
- High-level async/await object to send network data.
|
2018-09-15 06:11:24 +08:00
|
|
|
|
|
|
|
|
|
|
|
.. rubric:: Examples
|
|
|
|
|
|
|
|
* :ref:`Example TCP client <asyncio_example_stream>`.
|
|
|
|
|
|
|
|
* See also the :ref:`streams APIs <asyncio-streams>`
|
|
|
|
documentation.
|
|
|
|
|
|
|
|
|
|
|
|
Synchronization
|
|
|
|
===============
|
|
|
|
|
|
|
|
Threading-like synchronization primitives that can be used in Tasks.
|
|
|
|
|
|
|
|
.. list-table::
|
2018-09-15 07:57:11 +08:00
|
|
|
:widths: 50 50
|
2018-09-18 03:35:24 +08:00
|
|
|
:class: full-width-table
|
2018-09-15 06:11:24 +08:00
|
|
|
|
|
|
|
* - :class:`Lock`
|
|
|
|
- A mutex lock.
|
|
|
|
|
|
|
|
* - :class:`Event`
|
|
|
|
- An event object.
|
|
|
|
|
|
|
|
* - :class:`Condition`
|
|
|
|
- A condition object.
|
|
|
|
|
|
|
|
* - :class:`Semaphore`
|
|
|
|
- A semaphore.
|
|
|
|
|
|
|
|
* - :class:`BoundedSemaphore`
|
|
|
|
- A bounded semaphore.
|
|
|
|
|
|
|
|
|
|
|
|
.. rubric:: Examples
|
|
|
|
|
|
|
|
* :ref:`Using asyncio.Event <asyncio_example_sync_event>`.
|
|
|
|
|
|
|
|
* See also the documentation of asyncio
|
|
|
|
:ref:`synchronization primitives <asyncio-sync>`.
|
|
|
|
|
|
|
|
|
|
|
|
Exceptions
|
|
|
|
==========
|
|
|
|
|
|
|
|
.. list-table::
|
2018-09-15 07:57:11 +08:00
|
|
|
:widths: 50 50
|
2018-09-18 03:35:24 +08:00
|
|
|
:class: full-width-table
|
2018-09-15 06:11:24 +08:00
|
|
|
|
|
|
|
|
|
|
|
* - :exc:`asyncio.TimeoutError`
|
|
|
|
- Raised on timeout by functions like :func:`wait_for`.
|
|
|
|
Keep in mind that ``asyncio.TimeoutError`` is **unrelated**
|
|
|
|
to the built-in :exc:`TimeoutError` exception.
|
|
|
|
|
|
|
|
* - :exc:`asyncio.CancelledError`
|
|
|
|
- Raised when a Task is cancelled. See also :meth:`Task.cancel`.
|
|
|
|
|
|
|
|
|
|
|
|
.. rubric:: Examples
|
|
|
|
|
|
|
|
* :ref:`Handling CancelledError to run code on cancellation request
|
|
|
|
<asyncio_example_task_cancel>`.
|
|
|
|
|
|
|
|
* See also the full list of
|
|
|
|
:ref:`asyncio-specific exceptions <asyncio-exceptions>`.
|