Python 3.5+inspectфункция
inspect.getcoroutinestate()
корутины и генераторы
Состояние корутины строкой: CORO_CREATED, CORO_RUNNING, CORO_SUSPENDED или CORO_CLOSED.
Синтаксис
inspect.getcoroutinestate(coroutine)
Корутина в состоянии CORO_CREATED — это вызванная, но ни разу не ожидаемая async-функция: если её так и бросить, Python предупредит «coroutine was never awaited». Функция ждёт объект корутины, а не async-функцию и не генератор: на генераторе она падает AttributeError, а не TypeError. Для генераторов — getgeneratorstate, для асинхронных генераторов — getasyncgenstate.
Примеры
import inspect
class Pause:
def __await__(self):
yield
async def job():
await Pause()
c = job()
print(inspect.getcoroutinestate(c)) # → CORO_CREATED
c.send(None)
print(inspect.getcoroutinestate(c)) # → CORO_SUSPENDED
c.close()
print(inspect.getcoroutinestate(c)) # → CORO_CLOSED
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности