17db96d56Sopenharmony_ci.. currentmodule:: asyncio 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_ci=================== 57db96d56Sopenharmony_ciLow-level API Index 67db96d56Sopenharmony_ci=================== 77db96d56Sopenharmony_ci 87db96d56Sopenharmony_ciThis page lists all low-level asyncio APIs. 97db96d56Sopenharmony_ci 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ciObtaining the Event Loop 127db96d56Sopenharmony_ci======================== 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_ci.. list-table:: 157db96d56Sopenharmony_ci :widths: 50 50 167db96d56Sopenharmony_ci :class: full-width-table 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_ci * - :func:`asyncio.get_running_loop` 197db96d56Sopenharmony_ci - The **preferred** function to get the running event loop. 207db96d56Sopenharmony_ci 217db96d56Sopenharmony_ci * - :func:`asyncio.get_event_loop` 227db96d56Sopenharmony_ci - Get an event loop instance (running or current via the current policy). 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_ci * - :func:`asyncio.set_event_loop` 257db96d56Sopenharmony_ci - Set the event loop as current via the current policy. 267db96d56Sopenharmony_ci 277db96d56Sopenharmony_ci * - :func:`asyncio.new_event_loop` 287db96d56Sopenharmony_ci - Create a new event loop. 297db96d56Sopenharmony_ci 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ci.. rubric:: Examples 327db96d56Sopenharmony_ci 337db96d56Sopenharmony_ci* :ref:`Using asyncio.get_running_loop() <asyncio_example_future>`. 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_ci 367db96d56Sopenharmony_ciEvent Loop Methods 377db96d56Sopenharmony_ci================== 387db96d56Sopenharmony_ci 397db96d56Sopenharmony_ciSee also the main documentation section about the 407db96d56Sopenharmony_ci:ref:`asyncio-event-loop-methods`. 417db96d56Sopenharmony_ci 427db96d56Sopenharmony_ci.. rubric:: Lifecycle 437db96d56Sopenharmony_ci.. list-table:: 447db96d56Sopenharmony_ci :widths: 50 50 457db96d56Sopenharmony_ci :class: full-width-table 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ci * - :meth:`loop.run_until_complete` 487db96d56Sopenharmony_ci - Run a Future/Task/awaitable until complete. 497db96d56Sopenharmony_ci 507db96d56Sopenharmony_ci * - :meth:`loop.run_forever` 517db96d56Sopenharmony_ci - Run the event loop forever. 527db96d56Sopenharmony_ci 537db96d56Sopenharmony_ci * - :meth:`loop.stop` 547db96d56Sopenharmony_ci - Stop the event loop. 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_ci * - :meth:`loop.close` 577db96d56Sopenharmony_ci - Close the event loop. 587db96d56Sopenharmony_ci 597db96d56Sopenharmony_ci * - :meth:`loop.is_running()` 607db96d56Sopenharmony_ci - Return ``True`` if the event loop is running. 617db96d56Sopenharmony_ci 627db96d56Sopenharmony_ci * - :meth:`loop.is_closed()` 637db96d56Sopenharmony_ci - Return ``True`` if the event loop is closed. 647db96d56Sopenharmony_ci 657db96d56Sopenharmony_ci * - ``await`` :meth:`loop.shutdown_asyncgens` 667db96d56Sopenharmony_ci - Close asynchronous generators. 677db96d56Sopenharmony_ci 687db96d56Sopenharmony_ci 697db96d56Sopenharmony_ci.. rubric:: Debugging 707db96d56Sopenharmony_ci.. list-table:: 717db96d56Sopenharmony_ci :widths: 50 50 727db96d56Sopenharmony_ci :class: full-width-table 737db96d56Sopenharmony_ci 747db96d56Sopenharmony_ci * - :meth:`loop.set_debug` 757db96d56Sopenharmony_ci - Enable or disable the debug mode. 767db96d56Sopenharmony_ci 777db96d56Sopenharmony_ci * - :meth:`loop.get_debug` 787db96d56Sopenharmony_ci - Get the current debug mode. 797db96d56Sopenharmony_ci 807db96d56Sopenharmony_ci 817db96d56Sopenharmony_ci.. rubric:: Scheduling Callbacks 827db96d56Sopenharmony_ci.. list-table:: 837db96d56Sopenharmony_ci :widths: 50 50 847db96d56Sopenharmony_ci :class: full-width-table 857db96d56Sopenharmony_ci 867db96d56Sopenharmony_ci * - :meth:`loop.call_soon` 877db96d56Sopenharmony_ci - Invoke a callback soon. 887db96d56Sopenharmony_ci 897db96d56Sopenharmony_ci * - :meth:`loop.call_soon_threadsafe` 907db96d56Sopenharmony_ci - A thread-safe variant of :meth:`loop.call_soon`. 917db96d56Sopenharmony_ci 927db96d56Sopenharmony_ci * - :meth:`loop.call_later` 937db96d56Sopenharmony_ci - Invoke a callback *after* the given time. 947db96d56Sopenharmony_ci 957db96d56Sopenharmony_ci * - :meth:`loop.call_at` 967db96d56Sopenharmony_ci - Invoke a callback *at* the given time. 977db96d56Sopenharmony_ci 987db96d56Sopenharmony_ci 997db96d56Sopenharmony_ci.. rubric:: Thread/Process Pool 1007db96d56Sopenharmony_ci.. list-table:: 1017db96d56Sopenharmony_ci :widths: 50 50 1027db96d56Sopenharmony_ci :class: full-width-table 1037db96d56Sopenharmony_ci 1047db96d56Sopenharmony_ci * - ``await`` :meth:`loop.run_in_executor` 1057db96d56Sopenharmony_ci - Run a CPU-bound or other blocking function in 1067db96d56Sopenharmony_ci a :mod:`concurrent.futures` executor. 1077db96d56Sopenharmony_ci 1087db96d56Sopenharmony_ci * - :meth:`loop.set_default_executor` 1097db96d56Sopenharmony_ci - Set the default executor for :meth:`loop.run_in_executor`. 1107db96d56Sopenharmony_ci 1117db96d56Sopenharmony_ci 1127db96d56Sopenharmony_ci.. rubric:: Tasks and Futures 1137db96d56Sopenharmony_ci.. list-table:: 1147db96d56Sopenharmony_ci :widths: 50 50 1157db96d56Sopenharmony_ci :class: full-width-table 1167db96d56Sopenharmony_ci 1177db96d56Sopenharmony_ci * - :meth:`loop.create_future` 1187db96d56Sopenharmony_ci - Create a :class:`Future` object. 1197db96d56Sopenharmony_ci 1207db96d56Sopenharmony_ci * - :meth:`loop.create_task` 1217db96d56Sopenharmony_ci - Schedule coroutine as a :class:`Task`. 1227db96d56Sopenharmony_ci 1237db96d56Sopenharmony_ci * - :meth:`loop.set_task_factory` 1247db96d56Sopenharmony_ci - Set a factory used by :meth:`loop.create_task` to 1257db96d56Sopenharmony_ci create :class:`Tasks <Task>`. 1267db96d56Sopenharmony_ci 1277db96d56Sopenharmony_ci * - :meth:`loop.get_task_factory` 1287db96d56Sopenharmony_ci - Get the factory :meth:`loop.create_task` uses 1297db96d56Sopenharmony_ci to create :class:`Tasks <Task>`. 1307db96d56Sopenharmony_ci 1317db96d56Sopenharmony_ci 1327db96d56Sopenharmony_ci.. rubric:: DNS 1337db96d56Sopenharmony_ci.. list-table:: 1347db96d56Sopenharmony_ci :widths: 50 50 1357db96d56Sopenharmony_ci :class: full-width-table 1367db96d56Sopenharmony_ci 1377db96d56Sopenharmony_ci * - ``await`` :meth:`loop.getaddrinfo` 1387db96d56Sopenharmony_ci - Asynchronous version of :meth:`socket.getaddrinfo`. 1397db96d56Sopenharmony_ci 1407db96d56Sopenharmony_ci * - ``await`` :meth:`loop.getnameinfo` 1417db96d56Sopenharmony_ci - Asynchronous version of :meth:`socket.getnameinfo`. 1427db96d56Sopenharmony_ci 1437db96d56Sopenharmony_ci 1447db96d56Sopenharmony_ci.. rubric:: Networking and IPC 1457db96d56Sopenharmony_ci.. list-table:: 1467db96d56Sopenharmony_ci :widths: 50 50 1477db96d56Sopenharmony_ci :class: full-width-table 1487db96d56Sopenharmony_ci 1497db96d56Sopenharmony_ci * - ``await`` :meth:`loop.create_connection` 1507db96d56Sopenharmony_ci - Open a TCP connection. 1517db96d56Sopenharmony_ci 1527db96d56Sopenharmony_ci * - ``await`` :meth:`loop.create_server` 1537db96d56Sopenharmony_ci - Create a TCP server. 1547db96d56Sopenharmony_ci 1557db96d56Sopenharmony_ci * - ``await`` :meth:`loop.create_unix_connection` 1567db96d56Sopenharmony_ci - Open a Unix socket connection. 1577db96d56Sopenharmony_ci 1587db96d56Sopenharmony_ci * - ``await`` :meth:`loop.create_unix_server` 1597db96d56Sopenharmony_ci - Create a Unix socket server. 1607db96d56Sopenharmony_ci 1617db96d56Sopenharmony_ci * - ``await`` :meth:`loop.connect_accepted_socket` 1627db96d56Sopenharmony_ci - Wrap a :class:`~socket.socket` into a ``(transport, protocol)`` 1637db96d56Sopenharmony_ci pair. 1647db96d56Sopenharmony_ci 1657db96d56Sopenharmony_ci * - ``await`` :meth:`loop.create_datagram_endpoint` 1667db96d56Sopenharmony_ci - Open a datagram (UDP) connection. 1677db96d56Sopenharmony_ci 1687db96d56Sopenharmony_ci * - ``await`` :meth:`loop.sendfile` 1697db96d56Sopenharmony_ci - Send a file over a transport. 1707db96d56Sopenharmony_ci 1717db96d56Sopenharmony_ci * - ``await`` :meth:`loop.start_tls` 1727db96d56Sopenharmony_ci - Upgrade an existing connection to TLS. 1737db96d56Sopenharmony_ci 1747db96d56Sopenharmony_ci * - ``await`` :meth:`loop.connect_read_pipe` 1757db96d56Sopenharmony_ci - Wrap a read end of a pipe into a ``(transport, protocol)`` pair. 1767db96d56Sopenharmony_ci 1777db96d56Sopenharmony_ci * - ``await`` :meth:`loop.connect_write_pipe` 1787db96d56Sopenharmony_ci - Wrap a write end of a pipe into a ``(transport, protocol)`` pair. 1797db96d56Sopenharmony_ci 1807db96d56Sopenharmony_ci 1817db96d56Sopenharmony_ci.. rubric:: Sockets 1827db96d56Sopenharmony_ci.. list-table:: 1837db96d56Sopenharmony_ci :widths: 50 50 1847db96d56Sopenharmony_ci :class: full-width-table 1857db96d56Sopenharmony_ci 1867db96d56Sopenharmony_ci * - ``await`` :meth:`loop.sock_recv` 1877db96d56Sopenharmony_ci - Receive data from the :class:`~socket.socket`. 1887db96d56Sopenharmony_ci 1897db96d56Sopenharmony_ci * - ``await`` :meth:`loop.sock_recv_into` 1907db96d56Sopenharmony_ci - Receive data from the :class:`~socket.socket` into a buffer. 1917db96d56Sopenharmony_ci 1927db96d56Sopenharmony_ci * - ``await`` :meth:`loop.sock_recvfrom` 1937db96d56Sopenharmony_ci - Receive a datagram from the :class:`~socket.socket`. 1947db96d56Sopenharmony_ci 1957db96d56Sopenharmony_ci * - ``await`` :meth:`loop.sock_recvfrom_into` 1967db96d56Sopenharmony_ci - Receive a datagram from the :class:`~socket.socket` into a buffer. 1977db96d56Sopenharmony_ci 1987db96d56Sopenharmony_ci * - ``await`` :meth:`loop.sock_sendall` 1997db96d56Sopenharmony_ci - Send data to the :class:`~socket.socket`. 2007db96d56Sopenharmony_ci 2017db96d56Sopenharmony_ci * - ``await`` :meth:`loop.sock_sendto` 2027db96d56Sopenharmony_ci - Send a datagram via the :class:`~socket.socket` to the given address. 2037db96d56Sopenharmony_ci 2047db96d56Sopenharmony_ci * - ``await`` :meth:`loop.sock_connect` 2057db96d56Sopenharmony_ci - Connect the :class:`~socket.socket`. 2067db96d56Sopenharmony_ci 2077db96d56Sopenharmony_ci * - ``await`` :meth:`loop.sock_accept` 2087db96d56Sopenharmony_ci - Accept a :class:`~socket.socket` connection. 2097db96d56Sopenharmony_ci 2107db96d56Sopenharmony_ci * - ``await`` :meth:`loop.sock_sendfile` 2117db96d56Sopenharmony_ci - Send a file over the :class:`~socket.socket`. 2127db96d56Sopenharmony_ci 2137db96d56Sopenharmony_ci * - :meth:`loop.add_reader` 2147db96d56Sopenharmony_ci - Start watching a file descriptor for read availability. 2157db96d56Sopenharmony_ci 2167db96d56Sopenharmony_ci * - :meth:`loop.remove_reader` 2177db96d56Sopenharmony_ci - Stop watching a file descriptor for read availability. 2187db96d56Sopenharmony_ci 2197db96d56Sopenharmony_ci * - :meth:`loop.add_writer` 2207db96d56Sopenharmony_ci - Start watching a file descriptor for write availability. 2217db96d56Sopenharmony_ci 2227db96d56Sopenharmony_ci * - :meth:`loop.remove_writer` 2237db96d56Sopenharmony_ci - Stop watching a file descriptor for write availability. 2247db96d56Sopenharmony_ci 2257db96d56Sopenharmony_ci 2267db96d56Sopenharmony_ci.. rubric:: Unix Signals 2277db96d56Sopenharmony_ci.. list-table:: 2287db96d56Sopenharmony_ci :widths: 50 50 2297db96d56Sopenharmony_ci :class: full-width-table 2307db96d56Sopenharmony_ci 2317db96d56Sopenharmony_ci * - :meth:`loop.add_signal_handler` 2327db96d56Sopenharmony_ci - Add a handler for a :mod:`signal`. 2337db96d56Sopenharmony_ci 2347db96d56Sopenharmony_ci * - :meth:`loop.remove_signal_handler` 2357db96d56Sopenharmony_ci - Remove a handler for a :mod:`signal`. 2367db96d56Sopenharmony_ci 2377db96d56Sopenharmony_ci 2387db96d56Sopenharmony_ci.. rubric:: Subprocesses 2397db96d56Sopenharmony_ci.. list-table:: 2407db96d56Sopenharmony_ci :widths: 50 50 2417db96d56Sopenharmony_ci :class: full-width-table 2427db96d56Sopenharmony_ci 2437db96d56Sopenharmony_ci * - :meth:`loop.subprocess_exec` 2447db96d56Sopenharmony_ci - Spawn a subprocess. 2457db96d56Sopenharmony_ci 2467db96d56Sopenharmony_ci * - :meth:`loop.subprocess_shell` 2477db96d56Sopenharmony_ci - Spawn a subprocess from a shell command. 2487db96d56Sopenharmony_ci 2497db96d56Sopenharmony_ci 2507db96d56Sopenharmony_ci.. rubric:: Error Handling 2517db96d56Sopenharmony_ci.. list-table:: 2527db96d56Sopenharmony_ci :widths: 50 50 2537db96d56Sopenharmony_ci :class: full-width-table 2547db96d56Sopenharmony_ci 2557db96d56Sopenharmony_ci * - :meth:`loop.call_exception_handler` 2567db96d56Sopenharmony_ci - Call the exception handler. 2577db96d56Sopenharmony_ci 2587db96d56Sopenharmony_ci * - :meth:`loop.set_exception_handler` 2597db96d56Sopenharmony_ci - Set a new exception handler. 2607db96d56Sopenharmony_ci 2617db96d56Sopenharmony_ci * - :meth:`loop.get_exception_handler` 2627db96d56Sopenharmony_ci - Get the current exception handler. 2637db96d56Sopenharmony_ci 2647db96d56Sopenharmony_ci * - :meth:`loop.default_exception_handler` 2657db96d56Sopenharmony_ci - The default exception handler implementation. 2667db96d56Sopenharmony_ci 2677db96d56Sopenharmony_ci 2687db96d56Sopenharmony_ci.. rubric:: Examples 2697db96d56Sopenharmony_ci 2707db96d56Sopenharmony_ci* :ref:`Using asyncio.new_event_loop() and loop.run_forever() 2717db96d56Sopenharmony_ci <asyncio_example_lowlevel_helloworld>`. 2727db96d56Sopenharmony_ci 2737db96d56Sopenharmony_ci* :ref:`Using loop.call_later() <asyncio_example_call_later>`. 2747db96d56Sopenharmony_ci 2757db96d56Sopenharmony_ci* Using ``loop.create_connection()`` to implement 2767db96d56Sopenharmony_ci :ref:`an echo-client <asyncio_example_tcp_echo_client_protocol>`. 2777db96d56Sopenharmony_ci 2787db96d56Sopenharmony_ci* Using ``loop.create_connection()`` to 2797db96d56Sopenharmony_ci :ref:`connect a socket <asyncio_example_create_connection>`. 2807db96d56Sopenharmony_ci 2817db96d56Sopenharmony_ci* :ref:`Using add_reader() to watch an FD for read events 2827db96d56Sopenharmony_ci <asyncio_example_watch_fd>`. 2837db96d56Sopenharmony_ci 2847db96d56Sopenharmony_ci* :ref:`Using loop.add_signal_handler() <asyncio_example_unix_signals>`. 2857db96d56Sopenharmony_ci 2867db96d56Sopenharmony_ci* :ref:`Using loop.subprocess_exec() <asyncio_example_subprocess_proto>`. 2877db96d56Sopenharmony_ci 2887db96d56Sopenharmony_ci 2897db96d56Sopenharmony_ciTransports 2907db96d56Sopenharmony_ci========== 2917db96d56Sopenharmony_ci 2927db96d56Sopenharmony_ciAll transports implement the following methods: 2937db96d56Sopenharmony_ci 2947db96d56Sopenharmony_ci.. list-table:: 2957db96d56Sopenharmony_ci :widths: 50 50 2967db96d56Sopenharmony_ci :class: full-width-table 2977db96d56Sopenharmony_ci 2987db96d56Sopenharmony_ci * - :meth:`transport.close() <BaseTransport.close>` 2997db96d56Sopenharmony_ci - Close the transport. 3007db96d56Sopenharmony_ci 3017db96d56Sopenharmony_ci * - :meth:`transport.is_closing() <BaseTransport.is_closing>` 3027db96d56Sopenharmony_ci - Return ``True`` if the transport is closing or is closed. 3037db96d56Sopenharmony_ci 3047db96d56Sopenharmony_ci * - :meth:`transport.get_extra_info() <BaseTransport.get_extra_info>` 3057db96d56Sopenharmony_ci - Request for information about the transport. 3067db96d56Sopenharmony_ci 3077db96d56Sopenharmony_ci * - :meth:`transport.set_protocol() <BaseTransport.set_protocol>` 3087db96d56Sopenharmony_ci - Set a new protocol. 3097db96d56Sopenharmony_ci 3107db96d56Sopenharmony_ci * - :meth:`transport.get_protocol() <BaseTransport.get_protocol>` 3117db96d56Sopenharmony_ci - Return the current protocol. 3127db96d56Sopenharmony_ci 3137db96d56Sopenharmony_ci 3147db96d56Sopenharmony_ciTransports that can receive data (TCP and Unix connections, 3157db96d56Sopenharmony_cipipes, etc). Returned from methods like 3167db96d56Sopenharmony_ci:meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, 3177db96d56Sopenharmony_ci:meth:`loop.connect_read_pipe`, etc: 3187db96d56Sopenharmony_ci 3197db96d56Sopenharmony_ci.. rubric:: Read Transports 3207db96d56Sopenharmony_ci.. list-table:: 3217db96d56Sopenharmony_ci :widths: 50 50 3227db96d56Sopenharmony_ci :class: full-width-table 3237db96d56Sopenharmony_ci 3247db96d56Sopenharmony_ci * - :meth:`transport.is_reading() <ReadTransport.is_reading>` 3257db96d56Sopenharmony_ci - Return ``True`` if the transport is receiving. 3267db96d56Sopenharmony_ci 3277db96d56Sopenharmony_ci * - :meth:`transport.pause_reading() <ReadTransport.pause_reading>` 3287db96d56Sopenharmony_ci - Pause receiving. 3297db96d56Sopenharmony_ci 3307db96d56Sopenharmony_ci * - :meth:`transport.resume_reading() <ReadTransport.resume_reading>` 3317db96d56Sopenharmony_ci - Resume receiving. 3327db96d56Sopenharmony_ci 3337db96d56Sopenharmony_ci 3347db96d56Sopenharmony_ciTransports that can Send data (TCP and Unix connections, 3357db96d56Sopenharmony_cipipes, etc). Returned from methods like 3367db96d56Sopenharmony_ci:meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, 3377db96d56Sopenharmony_ci:meth:`loop.connect_write_pipe`, etc: 3387db96d56Sopenharmony_ci 3397db96d56Sopenharmony_ci.. rubric:: Write Transports 3407db96d56Sopenharmony_ci.. list-table:: 3417db96d56Sopenharmony_ci :widths: 50 50 3427db96d56Sopenharmony_ci :class: full-width-table 3437db96d56Sopenharmony_ci 3447db96d56Sopenharmony_ci * - :meth:`transport.write() <WriteTransport.write>` 3457db96d56Sopenharmony_ci - Write data to the transport. 3467db96d56Sopenharmony_ci 3477db96d56Sopenharmony_ci * - :meth:`transport.writelines() <WriteTransport.writelines>` 3487db96d56Sopenharmony_ci - Write buffers to the transport. 3497db96d56Sopenharmony_ci 3507db96d56Sopenharmony_ci * - :meth:`transport.can_write_eof() <WriteTransport.can_write_eof>` 3517db96d56Sopenharmony_ci - Return :const:`True` if the transport supports sending EOF. 3527db96d56Sopenharmony_ci 3537db96d56Sopenharmony_ci * - :meth:`transport.write_eof() <WriteTransport.write_eof>` 3547db96d56Sopenharmony_ci - Close and send EOF after flushing buffered data. 3557db96d56Sopenharmony_ci 3567db96d56Sopenharmony_ci * - :meth:`transport.abort() <WriteTransport.abort>` 3577db96d56Sopenharmony_ci - Close the transport immediately. 3587db96d56Sopenharmony_ci 3597db96d56Sopenharmony_ci * - :meth:`transport.get_write_buffer_size() 3607db96d56Sopenharmony_ci <WriteTransport.get_write_buffer_size>` 3617db96d56Sopenharmony_ci - Return the current size of the output buffer. 3627db96d56Sopenharmony_ci 3637db96d56Sopenharmony_ci * - :meth:`transport.get_write_buffer_limits() 3647db96d56Sopenharmony_ci <WriteTransport.get_write_buffer_limits>` 3657db96d56Sopenharmony_ci - Return high and low water marks for write flow control. 3667db96d56Sopenharmony_ci 3677db96d56Sopenharmony_ci * - :meth:`transport.set_write_buffer_limits() 3687db96d56Sopenharmony_ci <WriteTransport.set_write_buffer_limits>` 3697db96d56Sopenharmony_ci - Set new high and low water marks for write flow control. 3707db96d56Sopenharmony_ci 3717db96d56Sopenharmony_ci 3727db96d56Sopenharmony_ciTransports returned by :meth:`loop.create_datagram_endpoint`: 3737db96d56Sopenharmony_ci 3747db96d56Sopenharmony_ci.. rubric:: Datagram Transports 3757db96d56Sopenharmony_ci.. list-table:: 3767db96d56Sopenharmony_ci :widths: 50 50 3777db96d56Sopenharmony_ci :class: full-width-table 3787db96d56Sopenharmony_ci 3797db96d56Sopenharmony_ci * - :meth:`transport.sendto() <DatagramTransport.sendto>` 3807db96d56Sopenharmony_ci - Send data to the remote peer. 3817db96d56Sopenharmony_ci 3827db96d56Sopenharmony_ci * - :meth:`transport.abort() <DatagramTransport.abort>` 3837db96d56Sopenharmony_ci - Close the transport immediately. 3847db96d56Sopenharmony_ci 3857db96d56Sopenharmony_ci 3867db96d56Sopenharmony_ciLow-level transport abstraction over subprocesses. 3877db96d56Sopenharmony_ciReturned by :meth:`loop.subprocess_exec` and 3887db96d56Sopenharmony_ci:meth:`loop.subprocess_shell`: 3897db96d56Sopenharmony_ci 3907db96d56Sopenharmony_ci.. rubric:: Subprocess Transports 3917db96d56Sopenharmony_ci.. list-table:: 3927db96d56Sopenharmony_ci :widths: 50 50 3937db96d56Sopenharmony_ci :class: full-width-table 3947db96d56Sopenharmony_ci 3957db96d56Sopenharmony_ci * - :meth:`transport.get_pid() <SubprocessTransport.get_pid>` 3967db96d56Sopenharmony_ci - Return the subprocess process id. 3977db96d56Sopenharmony_ci 3987db96d56Sopenharmony_ci * - :meth:`transport.get_pipe_transport() 3997db96d56Sopenharmony_ci <SubprocessTransport.get_pipe_transport>` 4007db96d56Sopenharmony_ci - Return the transport for the requested communication pipe 4017db96d56Sopenharmony_ci (*stdin*, *stdout*, or *stderr*). 4027db96d56Sopenharmony_ci 4037db96d56Sopenharmony_ci * - :meth:`transport.get_returncode() <SubprocessTransport.get_returncode>` 4047db96d56Sopenharmony_ci - Return the subprocess return code. 4057db96d56Sopenharmony_ci 4067db96d56Sopenharmony_ci * - :meth:`transport.kill() <SubprocessTransport.kill>` 4077db96d56Sopenharmony_ci - Kill the subprocess. 4087db96d56Sopenharmony_ci 4097db96d56Sopenharmony_ci * - :meth:`transport.send_signal() <SubprocessTransport.send_signal>` 4107db96d56Sopenharmony_ci - Send a signal to the subprocess. 4117db96d56Sopenharmony_ci 4127db96d56Sopenharmony_ci * - :meth:`transport.terminate() <SubprocessTransport.terminate>` 4137db96d56Sopenharmony_ci - Stop the subprocess. 4147db96d56Sopenharmony_ci 4157db96d56Sopenharmony_ci * - :meth:`transport.close() <SubprocessTransport.close>` 4167db96d56Sopenharmony_ci - Kill the subprocess and close all pipes. 4177db96d56Sopenharmony_ci 4187db96d56Sopenharmony_ci 4197db96d56Sopenharmony_ciProtocols 4207db96d56Sopenharmony_ci========= 4217db96d56Sopenharmony_ci 4227db96d56Sopenharmony_ciProtocol classes can implement the following **callback methods**: 4237db96d56Sopenharmony_ci 4247db96d56Sopenharmony_ci.. list-table:: 4257db96d56Sopenharmony_ci :widths: 50 50 4267db96d56Sopenharmony_ci :class: full-width-table 4277db96d56Sopenharmony_ci 4287db96d56Sopenharmony_ci * - ``callback`` :meth:`connection_made() <BaseProtocol.connection_made>` 4297db96d56Sopenharmony_ci - Called when a connection is made. 4307db96d56Sopenharmony_ci 4317db96d56Sopenharmony_ci * - ``callback`` :meth:`connection_lost() <BaseProtocol.connection_lost>` 4327db96d56Sopenharmony_ci - Called when the connection is lost or closed. 4337db96d56Sopenharmony_ci 4347db96d56Sopenharmony_ci * - ``callback`` :meth:`pause_writing() <BaseProtocol.pause_writing>` 4357db96d56Sopenharmony_ci - Called when the transport's buffer goes over the high water mark. 4367db96d56Sopenharmony_ci 4377db96d56Sopenharmony_ci * - ``callback`` :meth:`resume_writing() <BaseProtocol.resume_writing>` 4387db96d56Sopenharmony_ci - Called when the transport's buffer drains below the low water mark. 4397db96d56Sopenharmony_ci 4407db96d56Sopenharmony_ci 4417db96d56Sopenharmony_ci.. rubric:: Streaming Protocols (TCP, Unix Sockets, Pipes) 4427db96d56Sopenharmony_ci.. list-table:: 4437db96d56Sopenharmony_ci :widths: 50 50 4447db96d56Sopenharmony_ci :class: full-width-table 4457db96d56Sopenharmony_ci 4467db96d56Sopenharmony_ci * - ``callback`` :meth:`data_received() <Protocol.data_received>` 4477db96d56Sopenharmony_ci - Called when some data is received. 4487db96d56Sopenharmony_ci 4497db96d56Sopenharmony_ci * - ``callback`` :meth:`eof_received() <Protocol.eof_received>` 4507db96d56Sopenharmony_ci - Called when an EOF is received. 4517db96d56Sopenharmony_ci 4527db96d56Sopenharmony_ci 4537db96d56Sopenharmony_ci.. rubric:: Buffered Streaming Protocols 4547db96d56Sopenharmony_ci.. list-table:: 4557db96d56Sopenharmony_ci :widths: 50 50 4567db96d56Sopenharmony_ci :class: full-width-table 4577db96d56Sopenharmony_ci 4587db96d56Sopenharmony_ci * - ``callback`` :meth:`get_buffer() <BufferedProtocol.get_buffer>` 4597db96d56Sopenharmony_ci - Called to allocate a new receive buffer. 4607db96d56Sopenharmony_ci 4617db96d56Sopenharmony_ci * - ``callback`` :meth:`buffer_updated() <BufferedProtocol.buffer_updated>` 4627db96d56Sopenharmony_ci - Called when the buffer was updated with the received data. 4637db96d56Sopenharmony_ci 4647db96d56Sopenharmony_ci * - ``callback`` :meth:`eof_received() <BufferedProtocol.eof_received>` 4657db96d56Sopenharmony_ci - Called when an EOF is received. 4667db96d56Sopenharmony_ci 4677db96d56Sopenharmony_ci 4687db96d56Sopenharmony_ci.. rubric:: Datagram Protocols 4697db96d56Sopenharmony_ci.. list-table:: 4707db96d56Sopenharmony_ci :widths: 50 50 4717db96d56Sopenharmony_ci :class: full-width-table 4727db96d56Sopenharmony_ci 4737db96d56Sopenharmony_ci * - ``callback`` :meth:`datagram_received() 4747db96d56Sopenharmony_ci <DatagramProtocol.datagram_received>` 4757db96d56Sopenharmony_ci - Called when a datagram is received. 4767db96d56Sopenharmony_ci 4777db96d56Sopenharmony_ci * - ``callback`` :meth:`error_received() <DatagramProtocol.error_received>` 4787db96d56Sopenharmony_ci - Called when a previous send or receive operation raises an 4797db96d56Sopenharmony_ci :class:`OSError`. 4807db96d56Sopenharmony_ci 4817db96d56Sopenharmony_ci 4827db96d56Sopenharmony_ci.. rubric:: Subprocess Protocols 4837db96d56Sopenharmony_ci.. list-table:: 4847db96d56Sopenharmony_ci :widths: 50 50 4857db96d56Sopenharmony_ci :class: full-width-table 4867db96d56Sopenharmony_ci 4877db96d56Sopenharmony_ci * - ``callback`` :meth:`pipe_data_received() 4887db96d56Sopenharmony_ci <SubprocessProtocol.pipe_data_received>` 4897db96d56Sopenharmony_ci - Called when the child process writes data into its 4907db96d56Sopenharmony_ci *stdout* or *stderr* pipe. 4917db96d56Sopenharmony_ci 4927db96d56Sopenharmony_ci * - ``callback`` :meth:`pipe_connection_lost() 4937db96d56Sopenharmony_ci <SubprocessProtocol.pipe_connection_lost>` 4947db96d56Sopenharmony_ci - Called when one of the pipes communicating with 4957db96d56Sopenharmony_ci the child process is closed. 4967db96d56Sopenharmony_ci 4977db96d56Sopenharmony_ci * - ``callback`` :meth:`process_exited() 4987db96d56Sopenharmony_ci <SubprocessProtocol.process_exited>` 4997db96d56Sopenharmony_ci - Called when the child process has exited. 5007db96d56Sopenharmony_ci 5017db96d56Sopenharmony_ci 5027db96d56Sopenharmony_ciEvent Loop Policies 5037db96d56Sopenharmony_ci=================== 5047db96d56Sopenharmony_ci 5057db96d56Sopenharmony_ciPolicies is a low-level mechanism to alter the behavior of 5067db96d56Sopenharmony_cifunctions like :func:`asyncio.get_event_loop`. See also 5077db96d56Sopenharmony_cithe main :ref:`policies section <asyncio-policies>` for more 5087db96d56Sopenharmony_cidetails. 5097db96d56Sopenharmony_ci 5107db96d56Sopenharmony_ci 5117db96d56Sopenharmony_ci.. rubric:: Accessing Policies 5127db96d56Sopenharmony_ci.. list-table:: 5137db96d56Sopenharmony_ci :widths: 50 50 5147db96d56Sopenharmony_ci :class: full-width-table 5157db96d56Sopenharmony_ci 5167db96d56Sopenharmony_ci * - :meth:`asyncio.get_event_loop_policy` 5177db96d56Sopenharmony_ci - Return the current process-wide policy. 5187db96d56Sopenharmony_ci 5197db96d56Sopenharmony_ci * - :meth:`asyncio.set_event_loop_policy` 5207db96d56Sopenharmony_ci - Set a new process-wide policy. 5217db96d56Sopenharmony_ci 5227db96d56Sopenharmony_ci * - :class:`AbstractEventLoopPolicy` 5237db96d56Sopenharmony_ci - Base class for policy objects. 524