# Індекс API низького рівня

На цій сторінці перераховано всі асинхронні API низького рівня.

## Отримання циклу подій

`asyncio.get_running_loop()` | Переважна функція для отримання запущеного циклу подій.
`asyncio.get_event_loop()` | Get an event loop instance (running or current via the current policy).
`asyncio.set_event_loop()` | Установіть цикл подій як поточний за допомогою поточної політики.
`asyncio.new_event_loop()` | Створіть новий цикл подій.

Приклади

- Використання asyncio.get_running_loop().

## Методи циклу подій

See also the main documentation section about the Event loop methods.

Життєвий цикл

`loop.run_until_complete()` | Запустіть Future/Task/waitable до завершення.
`loop.run_forever()` | Запустити цикл подій назавжди.
`loop.stop()` | Зупиніть цикл подій.
`loop.close()` | Закрийте цикл подій.
`loop.is_running()` | Повертає `True`, якщо запущено цикл подій.
`loop.is_closed()` | Повертає `True`, якщо цикл події закрито.
`чекати` `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()` | Викликати зворотний виклик у вказаний час.

Thread/Interpreter/Process Pool

`чекати` `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

`чекати` `loop.getaddrinfo()` | Асинхронна версія `socket.getaddrinfo()`.
`чекати` `loop.getnameinfo()` | Асинхронна версія `socket.getnameinfo()`.

Мережа та IPC

`чекати` `loop.create_connection()` | Відкрийте TCP-з’єднання.
`чекати` `loop.create_server()` | Створіть сервер TCP.
`чекати` `loop.create_unix_connection()` | Відкрийте підключення сокета Unix.
`чекати` `loop.create_unix_server()` | Створіть сокет-сервер Unix.
`чекати` `loop.connect_accepted_socket()` | Оберніть `socket` в пару `(транспорт, протокол)`.
`чекати` `loop.create_datagram_endpoint()` | Відкрийте з’єднання дейтаграми (UDP).
`чекати` `loop.sendfile()` | Надіслати файл через транспорт.
`чекати` `loop.start_tls()` | Оновіть наявне підключення до TLS.
`чекати` `loop.connect_read_pipe()` | Оберніть зчитований кінець каналу в пару `(транспорт, протокол)`.
`чекати` `loop.connect_write_pipe()` | Оберніть кінець каналу для запису в пару `(транспорт, протокол)`.

Сокети

`чекати` `loop.sock_recv()` | Отримувати дані з `socket`.
`чекати` `loop.sock_recv_into()` | Отримувати дані з `socket` в буфер.
`await` `loop.sock_recvfrom()` | Receive a datagram from the `socket`.
`await` `loop.sock_recvfrom_into()` | Receive a datagram from the `socket` into a buffer.
`чекати` `loop.sock_sendall()` | Надсилайте дані до `socket`.
`await` `loop.sock_sendto()` | Send a datagram via the `socket` to the given address.
`чекати` `loop.sock_connect()` | Підключіть `socket`.
`чекати` `loop.sock_accept()` | Прийміть підключення `socket`.
`чекати` `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()` | Реалізація обробника винятків за замовчуванням.

Приклади

- Using asyncio.new_event_loop() and loop.run_forever().

- Використання loop.call_later().

- Використання `loop.create_connection()` для реалізації ехо-клієнта.

- Використання `loop.create_connection()` для підключення сокета.

- Використання add_reader() для перегляду FD для подій читання.

- Використання loop.add_signal_handler().

- Використання loop.subprocess_exec().

## Транспорти

Усі транспорти реалізують такі методи:

`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()` | Return the current size of the output buffer.
`transport.get_write_buffer_limits()` | Повернути верхні та нижні водяні позначки для керування потоком запису.
`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()` | Закрийте підпроцес і закрийте всі канали.

## Протоколи

Класи протоколів можуть реалізовувати такі методи зворотного виклику:

`зворотний виклик` `connection_made()` | Викликається, коли встановлено з’єднання.
`зворотний виклик` `connection_lost()` | Викликається, коли з’єднання втрачено або закрито.
`зворотний виклик` `pause_writing()` | Викликається, коли транспортний буфер перевищує позначку високої води.
`зворотний виклик` `resume_writing()` | Викликається, коли буфер транспорту стікає нижче позначки низького рівня води.

Протоколи потокової передачі (TCP, Unix-сокети, канали)

`зворотний виклик` `data_received()` | Викликається при отриманні деяких даних.
`зворотний виклик` `eof_received()` | Викликається, коли отримано EOF.

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

`зворотний виклик` `get_buffer()` | Викликається для виділення нового буфера отримання.
`зворотний виклик` `buffer_updated()` | Викликається, коли буфер оновлюється отриманими даними.
`зворотний виклик` `eof_received()` | Викликається, коли отримано EOF.

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

`зворотний виклик` `datagram_received()` | Викликається, коли отримано дейтаграму.
`зворотний виклик` `error_received()` | Викликається, коли попередня операція надсилання чи отримання викликає `OSError`.

Протоколи підпроцесів

`callback` `pipe_data_received()` | Викликається, коли дочірній процес записує дані у свій канал stdout або stderr.
`callback` `pipe_connection_lost()` | Викликається, коли одна з труб, що спілкуються з дочірнім процесом, закрита.
`зворотний виклик` `process_exited()` | Called when the child process has exited. It can be called before `pipe_data_received()` and `pipe_connection_lost()` methods.

## Політики циклу подій

Політики — це механізм низького рівня для зміни поведінки таких функцій, як `asyncio.get_event_loop()`. Перегляньте також основний розділ правил для отримання додаткової інформації.

Доступ до політик

`asyncio.get_event_loop_policy()` | Повернути поточну політику для всього процесу.
`asyncio.set_event_loop_policy()` | Установіть нову політику для всього процесу.
`AbstractEventLoopPolicy` | Базовий клас для об’єктів політики.