Python 3.5+collectionsпонятие
collections.abc.AsyncIterable
collections.abc — протоколы
Протокол «можно перебирать в async for» (есть __aiter__).
Синтаксис
isinstance(obj, collections.abc.AsyncIterable)
Проверка смотрит только на наличие __aiter__ и ничего не гарантирует дальше: перебор всё равно может упасть, если то, что вернёт __aiter__, не умеет __anext__ — за это отвечает более узкий AsyncIterator. И помните, что асинхронно перебираемое не является обычным Iterable: for, list() и itertools с ним не работают, нужен async for или списочное включение вида [x async for x in it].
Примеры
import collections.abc as abc
async def ag():
yield 1
print(isinstance(ag(), abc.AsyncIterable)) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности