# Краткий список API

## Высокоуровневый API

### Корутины и задачи

* **asyncio.**<mark style="color:red;">**run**</mark>**(*****coro*****,&#x20;*****\******,&#x20;*****debug=False*****)** - запуск asyncio программы. Выполняет корутину ***coro*** и возвращает результат.
* **asyncio.**<mark style="color:red;">**create\_task**</mark>**(*****coro*****,&#x20;*****\******,&#x20;*****name=None*****)** - обертывает корутину ***coro*** в Task и планирует ее выполнение. Возвращает объект задачи Task.
* *coroutine* **asyncio.**<mark style="color:red;">**sleep**</mark>**(*****delay*****,&#x20;*****result=None*****,&#x20;*****\******,&#x20;*****loop=None*****)** - блокировка на ***delay*** секунд (устарело в 3.8, будет удалено в 3.10: параметр loop).
* *awaitable* **asyncio.**<mark style="color:red;">**gather**</mark>**(*****\*aws*****,&#x20;*****loop=None*****,&#x20;*****return\_exceptions=False*****)** - запускает ожидаемые объекты из последовательности ***aws*** конкурентно (устарело в 3.8, будет удалено в 3.10: параметр loop).
* *awaitable* **asyncio.**<mark style="color:red;">**shield**</mark>**(*****aw*****,&#x20;*****\******,&#x20;*****loop=None*****)** - защита ожидаемого объекта от отмены (устарело в 3.8, будет удалено в 3.10: параметр loop).
* *coroutine* **asyncio.**<mark style="color:red;">**wait\_for**</mark>**(*****aw*****,&#x20;*****timeout*****,&#x20;*****\******,&#x20;*****loop=None*****)** - дождаться завершения ожидаемого **aw** с таймаутом (устарело в 3.8, будет удалено в 3.10: параметр loop).
* *coroutine* **asyncio.**<mark style="color:red;">**wait**</mark>**(*****aws*****,&#x20;*****\******,&#x20;*****loop=None*****,&#x20;*****timeout=None*****,&#x20;*****return\_when=ALL\_COMPLETED*****)** - конкурентный запуск ожидаемых объектов **aws** и блокировка, пока не будет выполнено условие, указанное в **return\_when** (устарело в 3.8, будет удалено в 3.10: параметр loop). Также теперь нужно передавать объекты Task, а не корутины.
* **asyncio.**<mark style="color:red;">**as\_completed**</mark>**(*****aws*****,&#x20;*****\******,&#x20;*****loop=None*****,&#x20;*****timeout=None*****)** - запуск ожидаемых объектов итеративно и конкурентно. Возвращает итератор корутины (устарело в 3.8, будет удалено в 3.10: параметр loop).
* **asyncio.**<mark style="color:red;">**run\_coroutine\_threadsafe**</mark>**(*****coro*****,&#x20;*****loop*****)** - планирование из других потоков. Отправляет корутину в событийный цикл. Потокобезопасно. Вызывается из потока ОС, отличного от того, где выполняется событийный цикл.
* **asyncio.**<mark style="color:red;">**current\_task**</mark>**(*****loop=None*****)** - Интроспекция; возвращает текущую Task сущность или None, если задача не выполняется.
* **asyncio.**<mark style="color:red;">**all\_tasks**</mark>**(*****loop=None*****)** - Интроспекция; возвращает множество еще не завершенных объектов Task, запущенных в цикле.
* *class* **asyncio.Task(*****coro*****,&#x20;*****\******,&#x20;*****loop=None*****,&#x20;*****name=None*****)** - Объект задачи; Future-подобный объект, запускающий корутину. Не потокобезопасный. Задачи используются для запуска корутин в событийном цикле (устарело в 3.8, будет удалено в 3.10: параметр loop).
* **@asyncio.coroutine** - декоратор для маркировки основанных на генераторах корутин (устарело в 3.8, будет удалено в 3.10).
* **asyncio.iscoroutine(*****obj*****)** - Возвращает True, если ***obj*** - объект корутины.
* **asyncio.iscoroutinefunction(*****func*****)** - Возвращает True, если **func** - функция-корутина.
