Low-level API Index¶
This page lists all low-level asyncio APIs.
Obtaining the Event Loop¶
asyncio.get_running_loop() |
The preferred function to get the running event loop. |
asyncio.get_event_loop() |
Get an event loop instance (current or via the policy). |
asyncio.set_event_loop() |
Set the event loop as current via the current policy. |
asyncio.new_event_loop() |
Create a new event loop. |
Examples
Event Loop Methods¶
See also the main documentation section about the event loop methods.
Lifecycle
loop.run_until_complete() |
Run a Future/Task/awaitable until complete. |
loop.run_forever() |
Run the event loop forever. |
loop.stop() |
Stop the event loop. |
loop.close() |
Close the event loop. |
loop.is_running() |
Return True if the event loop is running. |
loop.is_closed() |
Return True if the event loop is closed. |
await loop.shutdown_asyncgens() |
Close asynchronous generators. |
Debugging
loop.set_debug() |
Enable or disable the debug mode. |
loop.get_debug() |
Get the current debug mode. |
Scheduling Callbacks
loop.call_soon() |
Invoke a callback soon. |
loop.call_soon_threadsafe() |
A thread-safe variant of loop.call_soon() . |
loop.call_later() |
Invoke a callback after the given time. |
loop.call_at() |
Invoke a callback at the given time. |
Thread/Process Pool
await loop.run_in_executor() |
Run a CPU-bound or other blocking function in
a concurrent.futures executor. |
loop.set_default_executor() |
Set the default executor for loop.run_in_executor() . |
Tasks and Futures
loop.create_future() |
Create a Future object. |
loop.create_task() |
Schedule coroutine as a Task . |
loop.set_task_factory() |
Set a factory used by loop.create_task() to
create Tasks . |
loop.get_task_factory() |
Get the factory loop.create_task() uses
to create Tasks . |
DNS
await loop.getaddrinfo() |
Asynchronous version of socket.getaddrinfo() . |
await loop.getnameinfo() |
Asynchronous version of socket.getnameinfo() . |
Networking and IPC
await loop.create_connection() |
Open a TCP connection. |
await loop.create_server() |
Create a TCP server. |
await loop.create_unix_connection() |
Open a Unix socket connection. |
await loop.create_unix_server() |
Create a Unix socket server. |
await loop.connect_accepted_socket() |
Wrap a socket into a (transport, protocol)
pair. |
await loop.create_datagram_endpoint() |
Open a datagram (UDP) connection. |
await loop.sendfile() |
Send a file over a transport. |
await loop.start_tls() |
Upgrade an existing connection to TLS. |
await loop.connect_read_pipe() |
Wrap a read end of a pipe into a (transport, protocol) pair. |
await loop.connect_write_pipe() |
Wrap a write end of a pipe into a (transport, protocol) pair. |
Sockets
await loop.sock_recv() |
Receive data from the socket . |
await loop.sock_recv_into() |
Receive data from the socket into a buffer. |
await loop.sock_sendall() |
Send data to the socket . |
await loop.sock_connect() |
Connect the socket . |
await loop.sock_accept() |
Accept a socket connection. |
await loop.sock_sendfile() |
Send a file over the socket . |
loop.add_reader() |
Start watching a file descriptor for read availability. |
loop.remove_reader() |
Stop watching a file descriptor for read availability. |
loop.add_writer() |
Start watching a file descriptor for write availability. |
loop.remove_writer() |
Stop watching a file descriptor for write availability. |
Unix Signals
loop.add_signal_handler() |
Add a handler for a signal . |
loop.remove_signal_handler() |
Remove a handler for a signal . |
Subprocesses
loop.subprocess_exec() |
Spawn a subprocess. |
loop.subprocess_shell() |
Spawn a subprocess from a shell command. |
Error Handling
loop.call_exception_handler() |
Call the exception handler. |
loop.set_exception_handler() |
Set a new exception handler. |
loop.get_exception_handler() |
Get the current exception handler. |
loop.default_exception_handler() |
The default exception handler implementation. |
Examples
- Using asyncio.get_event_loop() and loop.run_forever().
- Using loop.call_later().
- Using
loop.create_connection()
to implement an echo-client. - Using
loop.create_connection()
to connect a socket. - Using add_reader() to watch an FD for read events.
- Using loop.add_signal_handler().
- Using loop.subprocess_exec().
Transports¶
All transports implement the following methods:
transport.close() |
Close the transport. |
transport.is_closing() |
Return True if the transport is closing or is closed. |
transport.get_extra_info() |
Request for information about the transport. |
transport.set_protocol() |
Set a new protocol. |
transport.get_protocol() |
Return the current protocol. |
Transports that can receive data (TCP and Unix connections,
pipes, etc). Returned from methods like
loop.create_connection()
, loop.create_unix_connection()
,
loop.connect_read_pipe()
, etc:
Read Transports
transport.is_reading() |
Return True if the transport is receiving. |
transport.pause_reading() |
Pause receiving. |
transport.resume_reading() |
Resume receiving. |
Transports that can Send data (TCP and Unix connections,
pipes, etc). Returned from methods like
loop.create_connection()
, loop.create_unix_connection()
,
loop.connect_write_pipe()
, etc:
Write Transports
transport.write() |
Write data to the transport. |
transport.writelines() |
Write buffers to the transport. |
transport.can_write_eof() |
Return True if the transport supports sending EOF. |
transport.write_eof() |
Close and send EOF after flushing buffered data. |
transport.abort() |
Close the transport immediately. |
transport.get_write_buffer_size() |
Return high and low water marks for write flow control. |
transport.set_write_buffer_limits() |
Set new high and low water marks for write flow control. |
Transports returned by loop.create_datagram_endpoint()
:
Datagram Transports
transport.sendto() |
Send data to the remote peer. |
transport.abort() |
Close the transport immediately. |
Low-level transport abstraction over subprocesses.
Returned by loop.subprocess_exec()
and
loop.subprocess_shell()
:
Subprocess Transports
transport.get_pid() |
Return the subprocess process id. |
transport.get_pipe_transport() |
Return the transport for the requested communication pipe (stdin, stdout, or stderr). |
transport.get_returncode() |
Return the subprocess return code. |
transport.kill() |
Kill the subprocess. |
transport.send_signal() |
Send a signal to the subprocess. |
transport.terminate() |
Stop the subprocess. |
transport.close() |
Kill the subprocess and close all pipes. |
Protocols¶
Protocol classes can implement the following callback methods:
callback connection_made() |
Called when a connection is made. |
callback connection_lost() |
Called when the connection is lost or closed. |
callback pause_writing() |
Called when the transport’s buffer goes over the high water mark. |
callback resume_writing() |
Called when the transport’s buffer drains below the low water mark. |
Streaming Protocols (TCP, Unix Sockets, Pipes)
callback data_received() |
Called when some data is received. |
callback eof_received() |
Called when an EOF is received. |
Buffered Streaming Protocols
callback get_buffer() |
Called to allocate a new receive buffer. |
callback buffer_updated() |
Called when the buffer was updated with the received data. |
callback eof_received() |
Called when an EOF is received. |
Datagram Protocols
callback datagram_received() |
Called when a datagram is received. |
callback error_received() |
Called when a previous send or receive operation raises an
OSError . |
Subprocess Protocols
callback pipe_data_received() |
Called when the child process writes data into its stdout or stderr pipe. |
callback pipe_connection_lost() |
Called when one of the pipes communicating with the child process is closed. |
callback process_exited() |
Called when the child process has exited. |
Event Loop Policies¶
Policies is a low-level mechanism to alter the behavior of
functions like asyncio.get_event_loop()
. See also
the main policies section for more
details.
Accessing Policies
asyncio.get_event_loop_policy() |
Return the current process-wide policy. |
asyncio.set_event_loop_policy() |
Set a new process-wide policy. |
AbstractEventLoopPolicy |
Base class for policy objects. |