]> granicus.if.org Git - python/commitdiff
Merge 3.5 + document CO_ASYNC_GENERATOR; issue #26010
authorYury Selivanov <yury@magic.io>
Thu, 20 Oct 2016 17:11:34 +0000 (13:11 -0400)
committerYury Selivanov <yury@magic.io>
Thu, 20 Oct 2016 17:11:34 +0000 (13:11 -0400)
1  2 
Doc/library/inspect.rst

index 5cb7c22adbeddfea588d15d91601fbf9e91cc1ad,62a3988ae02ea782e40dee41a2849c4739df66b0..58e37a3dc9b7a8f3b2f272ad3826e92154f3f9cf
@@@ -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