Индекс низкоуровневого API

На этой странице перечислено всё низкоуровневое API asyncio.

Получение событийного цикла

asyncio.get_running_loop() Предпочтительная функция для получения работающего событийного цикла.
asyncio.get_event_loop() Получить сущность событийного цикла (текущий или через политику).
asyncio.set_event_loop() Установить событийный цикл как текущий через текущую политику.
asyncio.new_event_loop() Создание нового событийного цикла.

Примеры

Методы событийного цикла

См. также основной раздел документации о методах событийного цикла.

Жизненный цикл

loop.run_until_complete() Запуск футуры/задачи/ожидаемого до завершения.
loop.run_forever() Постоянный запуск событийного цикла.
loop.stop() Остановить событийный цикл.
loop.close() Закрыть событийный цикл.
loop.is_running() Возвращает True если событийный цикл работает.
loop.is_closed() Возвращает True если событийный цикл закрыт.
await loop.shutdown_asyncgens() Закрыть асинхронные генераторы.

Отладка

loop.set_debug() Включить или отключить режим отладки.
loop.get_debug() Получить текущий режим отладки.

Планирование колбэков

loop.call_soon() Скорый вызов колбэка.
loop.call_soon_threadsafe() Потокобезопасный вариант loop.call_soon().
loop.call_later() Вызвать колбэк после заданного времени.
loop.call_at() Вызвать колбэк в данное время.

Пул потоков/процессов

await loop.run_in_executor() Запуск связанной с ЦП или другой блокирующей функции в исполнителе concurrent.futures.
loop.set_default_executor() Установить исполнителя по умолчанию для loop.run_in_executor().

Задачи и футуры

loop.create_future() Создание объекта Future.
loop.create_task() Запланировать корутину как Task.
loop.set_task_factory() Установить фабрику, используемую loop.create_task() для создания Tasks.
loop.get_task_factory() Получить фабрику, используемую loop.create_task() для создания Tasks.

DNS

await loop.getaddrinfo() Асинхронная версия socket.getaddrinfo().
await loop.getnameinfo() Асинхронная версия socket.getnameinfo().

Межсетевое взаимодействие и IPC

await loop.create_connection() Открытие TCP подключения.
await loop.create_server() Создание TCP сервера.
await loop.create_unix_connection() Открытие Unix сокета соединения.
await loop.create_unix_server() Создание сокетного сервера Unix.
await loop.connect_accepted_socket() Обёртывание socket в (transport, protocol) пару.
await loop.create_datagram_endpoint() Открытие дейтаграммного соединения (UDP).
await loop.sendfile() Отправить файл через транспорт.
await loop.start_tls() Обновить существующее соединение до TLS.
await loop.connect_read_pipe() Обёртывание чтение до конца канала в пару (transport, protocol).
await loop.connect_write_pipe() Обёртывание записи до конца канала в пару (transport, protocol).

Сокеты

await loop.sock_recv() Принять данные из socket.
await loop.sock_recv_into() Принять данные из socket в буфер.
await loop.sock_sendall() Отправить данные socket.
await loop.sock_connect() Подключиться к socket.
await loop.sock_accept() Принять socket подключение.
await loop.sock_sendfile() Отправить файл через socket.
loop.add_reader() Начать слежение за файловым дескриптором для обеспечения доступности чтения.
loop.remove_reader() Прекращение слежения за файловым дескриптором для обеспечения доступности чтения.
loop.add_writer() Начать слежение за файловым дескриптором для обеспечения доступности записи.
loop.remove_writer() Прекращение слежения за файловым дескриптором для обеспечения доступности записи.

Сигналы Unix

loop.add_signal_handler() Добавить обработчик для signal.
loop.remove_signal_handler() Удалить обработчик для signal.

Подпроцессы

loop.subprocess_exec() Создание подпроцесса.
loop.subprocess_shell() Создаёт подпроцесс из команды оболочки.

Обработка ошибки

loop.call_exception_handler() Вызов обработчика исключений.
loop.set_exception_handler() Установка нового обработчика исключения.
loop.get_exception_handler() Получить текущий обработчик исключения.
loop.default_exception_handler() Реализация обработчика исключения по умолчанию.

Примеры

Транспорты

Все транспорты реализуют следующие методы:

transport.close() Закрыть транспорт.
transport.is_closing() Возвращает True если транспорт закрывается или закрыт.
transport.get_extra_info() Запрос информации о транспорте.
transport.set_protocol() Установка нового протокола.
transport.get_protocol() Вернуть текущий протокол.

Транспорты могут принимать данные (из TCP и Unix подключений, пайпов, и т. д.). Возвращаются методами, такими как loop.create_connection(), loop.create_unix_connection(), loop.connect_read_pipe() и т. д.:

Чтение транспортов

transport.is_reading() Возвращает True если транспорт принимает.
transport.pause_reading() Пауза получения.
transport.resume_reading() Возобновить получение.

Транспорты могут отправлять данные (в соединения TCP и Unix, пайпы и т. д.). Возвращаются методами, такими как loop.create_connection(), loop.create_unix_connection(), loop.connect_write_pipe(), и т. д.:

Написать транспортам

transport.write() Записать данные в транспорт.
transport.writelines() Записать в буферы транспорта.
transport.can_write_eof() Возвращает True если транспорт поддерживает отправку EOF.
transport.write_eof() Закрыть и отправить EOF после очистки буферизованных данных.
transport.abort() Незамедлительно закрыть транспорт.
transport.get_write_buffer_size() Возвращает верхнюю и нижнюю ватерлинии для контроля потока записи.
transport.set_write_buffer_limits() Установка новых верхних и нижних ватерлиний для управления потоком записи.

Транспорт возвращается loop.create_datagram_endpoint():

Транспорт дейтаграмм

transport.sendto() Отправить данные на удаленный узел.
transport.abort() Незамедлительное закрытие транспорта.

Низкоуровневая абстракция транспорта, через подпроцессы. Возвращает loop.subprocess_exec() и loop.subprocess_shell():

Транспорты подпроцессов

transport.get_pid() Возвращает идентификатор процесса подпроцесса.
transport.get_pipe_transport() Возврат транспорта для запрошенного пайпа связи (stdin, stdout или stderr).
transport.get_returncode() Возвращает код возврата подпроцесса.
transport.kill() Убить подпроцесс.
transport.send_signal() Отправить сигнал подпроцессу.
transport.terminate() Отстановить подпроцесс.
transport.close() Убивает подпроцесс и закрывает все пайпы.

Протоколы

Классы протокола реализовывают следующие колбэк методы:

callback connection_made() Вызывается, когда соединение установлено.
callback connection_lost() Вызывается, когда соединение потеряно или закрыто.
callback pause_writing() Вызывается, когда транспортный буфер пересекает верхнюю отметку.
callback resume_writing() Вызывается, когда транспортный буфер опускается ниже нижней отметки.

Потоковые протоколы (TCP, Unix сокеты, пайпы)

callback data_received() Вызывается при получении данных.
callback eof_received() Вызывается при получении EOF.

Буферизованные потоковые протоколы

callback get_buffer() Вызывается для выделения нового буфера приёма.
callback buffer_updated() Вызывается при обновлении буфера полученными данными.
callback eof_received() Вызывается при получении EOF.

Протоколы дейтаграмм

callback datagram_received() Вызывается при получении дейтаграммы.
callback error_received() Вызывается, когда предыдущая операция отправки или получения вызывает OSError.

Протоколы подпроцесса

callback pipe_data_received() Вызывается, когда дочерний процесс записывает данные в свой stdout или stderr пайп.
callback pipe_connection_lost() Вызывается, когда один из пайпов соединяется с закрытым дочерним процессом.
callback process_exited() Вызывается, когда завершён дочерний процесс.

Политики событийного цикла

Политики — это низкоуровневый механизм изменения поведений функций, подобно asyncio.get_event_loop(). См. также основной раздел политик для получения дополнительных подробностей.

Доступ к политикам

asyncio.get_event_loop_policy() Возвращение текущей политики для всего процесса.
asyncio.set_event_loop_policy() Установка новой политики для всего процесса.
AbstractEventLoopPolicy Базовый класс для объектов политики.