From: Yury Selivanov Date: Thu, 20 Oct 2016 17:11:34 +0000 (-0400) Subject: Merge 3.5 + document CO_ASYNC_GENERATOR; issue #26010 X-Git-Tag: v3.6.0b3~96 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e20fed918265368c3b925b310a1edc6e0e4579ce;p=python Merge 3.5 + document CO_ASYNC_GENERATOR; issue #26010 --- e20fed918265368c3b925b310a1edc6e0e4579ce diff --cc Doc/library/inspect.rst index 5cb7c22adb,62a3988ae0..58e37a3dc9 --- a/Doc/library/inspect.rst +++ b/Doc/library/inspect.rst @@@ -1221,6 -1232,61 +1221,69 @@@ updated as expected .. versionadded:: 3.5 + .. _inspect-module-co-flags: + + Code Objects Bit Flags + ---------------------- + + Python code objects have a ``co_flags`` attribute, which is a bitmap of + the following flags: + + .. data:: CO_NEWLOCALS + + If set, a new dict will be created for the frame's ``f_locals`` when + the code object is executed. + + .. data:: CO_VARARGS + + The code object has a variable positional parameter (``*args``-like). + + .. data:: CO_VARKEYWORDS + + The code object has a variable keyword parameter (``**kwargs``-like). + + .. data:: CO_GENERATOR + + The flag is set when the code object is a generator function, i.e. + a generator object is returned when the code object is executed. + + .. data:: CO_NOFREE + + The flag is set if there are no free or cell variables. + + .. data:: CO_COROUTINE + + The flag is set when the code object is a coroutine function, i.e. + a coroutine object is returned when the code object is executed. See + :pep:`492` for more details. + + .. versionadded:: 3.5 + + .. data:: CO_ITERABLE_COROUTINE + + Used to turn generators into generator-based coroutines. Generator + objects with this flag can be used in ``await`` expression, and can + ``yield from`` coroutine objects. See :pep:`492` for more details. + + .. versionadded:: 3.5 + ++.. data:: CO_ASYNC_GENERATOR ++ ++ The flag is set when the code object is a asynchronous generator ++ function, i.e. an asynchronous generator object is returned when the ++ code object is executed. See :pep:`525` for more details. ++ ++ .. versionadded:: 3.6 ++ + .. note:: + The flags are specific to CPython, and may not be defined in other + Python implementations. Furthermore, the flags are an implementation + detail, and can be removed or deprecated in future Python releases. + It's recommended to use public APIs from the :mod:`inspect` module + for any introspection needs. + + + .. _inspect-module-cli: Command Line Interface