docs/inspect: clarify iscoroutinefunction; add docs for isasyncgen*

This commit is contained in:
Yury Selivanov 2016-11-08 12:23:09 -05:00
parent 0180cf6684
commit 4778e13148
1 changed files with 7 additions and 2 deletions

View File

@ -179,17 +179,22 @@ def isgeneratorfunction(object):
def iscoroutinefunction(object):
"""Return true if the object is a coroutine function.
Coroutine functions are defined with "async def" syntax,
or generators decorated with "types.coroutine".
Coroutine functions are defined with "async def" syntax.
"""
return bool((isfunction(object) or ismethod(object)) and
object.__code__.co_flags & CO_COROUTINE)
def isasyncgenfunction(object):
"""Return true if the object is an asynchronous generator function.
Asynchronous generator functions are defined with "async def"
syntax and have "yield" expressions in their body.
"""
return bool((isfunction(object) or ismethod(object)) and
object.__code__.co_flags & CO_ASYNC_GENERATOR)
def isasyncgen(object):
"""Return true if the object is an asynchronous generator."""
return isinstance(object, types.AsyncGeneratorType)
def isgenerator(object):