| 
									
										
										
										
											2018-09-14 15:11:24 -07:00
										 |  |  | .. currentmodule:: asyncio
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-17 15:35:24 -04:00
										 |  |  | ====================
 | 
					
						
							|  |  |  | High-level API Index
 | 
					
						
							|  |  |  | ====================
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07: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-14 16:57:11 -07:00
										 |  |  |     :widths: 50 50
 | 
					
						
							| 
									
										
										
										
											2018-09-17 15:35:24 -04:00
										 |  |  |     :class: full-width-table
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07: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-17 15:35:24 -04:00
										 |  |  |       - Monitor for completion.
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     * - :func:`current_task`
 | 
					
						
							|  |  |  |       - Return the current Task.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     * - :func:`all_tasks`
 | 
					
						
							|  |  |  |       - Return all tasks for an event loop.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     * - :class:`Task`
 | 
					
						
							|  |  |  |       - Task object.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-18 23:03:28 -04:00
										 |  |  |     * - :func:`to_thread`
 | 
					
						
							| 
									
										
										
										
											2021-03-13 18:00:28 -07:00
										 |  |  |       - Asynchronously run a function in a separate OS thread.
 | 
					
						
							| 
									
										
										
										
											2020-05-18 23:03:28 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-17 15:35:24 -04: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-14 15:11:24 -07: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-14 16:57:11 -07:00
										 |  |  |     :widths: 50 50
 | 
					
						
							| 
									
										
										
										
											2018-09-17 15:35:24 -04:00
										 |  |  |     :class: full-width-table
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07: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-14 16:57:11 -07:00
										 |  |  |     :widths: 50 50
 | 
					
						
							| 
									
										
										
										
											2018-09-17 15:35:24 -04:00
										 |  |  |     :class: full-width-table
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07: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-14 16:57:11 -07:00
										 |  |  |     :widths: 50 50
 | 
					
						
							| 
									
										
										
										
											2018-09-17 15:35:24 -04:00
										 |  |  |     :class: full-width-table
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     * - ``await`` :func:`open_connection`
 | 
					
						
							| 
									
										
										
										
											2019-09-29 21:59:55 -07:00
										 |  |  |       -  Establish a TCP connection.
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     * - ``await`` :func:`open_unix_connection`
 | 
					
						
							| 
									
										
										
										
											2019-09-29 21:59:55 -07:00
										 |  |  |       -  Establish a Unix socket connection.
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-13 11:52:38 +01:00
										 |  |  |     * - ``await`` :func:`start_server`
 | 
					
						
							| 
									
										
										
										
											2019-09-29 21:59:55 -07:00
										 |  |  |       - Start a TCP server.
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-13 11:52:38 +01:00
										 |  |  |     * - ``await`` :func:`start_unix_server`
 | 
					
						
							| 
									
										
										
										
											2019-09-29 21:59:55 -07:00
										 |  |  |       - Start a Unix socket server.
 | 
					
						
							| 
									
										
										
										
											2019-09-13 11:52:38 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07:00
										 |  |  |     * - :class:`StreamReader`
 | 
					
						
							| 
									
										
										
										
											2019-09-29 21:59:55 -07:00
										 |  |  |       - High-level async/await object to receive network data.
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     * - :class:`StreamWriter`
 | 
					
						
							| 
									
										
										
										
											2019-09-29 21:59:55 -07:00
										 |  |  |       - High-level async/await object to send network data.
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07: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-14 16:57:11 -07:00
										 |  |  |     :widths: 50 50
 | 
					
						
							| 
									
										
										
										
											2018-09-17 15:35:24 -04:00
										 |  |  |     :class: full-width-table
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07: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-14 16:57:11 -07:00
										 |  |  |     :widths: 50 50
 | 
					
						
							| 
									
										
										
										
											2018-09-17 15:35:24 -04:00
										 |  |  |     :class: full-width-table
 | 
					
						
							| 
									
										
										
										
											2018-09-14 15:11:24 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     * - :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>`.
 |