diff options
author | INADA Naoki <methane@users.noreply.github.com> | 2017-02-22 15:31:59 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2017-02-22 15:31:59 (GMT) |
commit | cb41b2766de646435743b6af7dd152751b54e73f (patch) | |
tree | 4033a04617524787defe4699c45327783fe44d8d /Doc | |
parent | 1bc156430bad8177b5beecf57979628c1d071230 (diff) | |
download | cpython-cb41b2766de646435743b6af7dd152751b54e73f.zip cpython-cb41b2766de646435743b6af7dd152751b54e73f.tar.gz cpython-cb41b2766de646435743b6af7dd152751b54e73f.tar.bz2 |
bpo-29463: Add docstring field to some AST nodes. (#46)
* bpo-29463: Add docstring field to some AST nodes.
ClassDef, ModuleDef, FunctionDef, and AsyncFunctionDef has docstring
field for now. It was first statement of there body.
* fix document. thanks travis!
* doc fixes
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/library/ast.rst | 14 | ||||
-rw-r--r-- | Doc/whatsnew/3.7.rst | 6 |
2 files changed, 17 insertions, 3 deletions
diff --git a/Doc/library/ast.rst b/Doc/library/ast.rst index 8d4ae2c..bda46f4 100644 --- a/Doc/library/ast.rst +++ b/Doc/library/ast.rst @@ -133,9 +133,17 @@ and classes for traversing abstract syntax trees: .. function:: get_docstring(node, clean=True) Return the docstring of the given *node* (which must be a - :class:`FunctionDef`, :class:`ClassDef` or :class:`Module` node), or ``None`` - if it has no docstring. If *clean* is true, clean up the docstring's - indentation with :func:`inspect.cleandoc`. + :class:`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, + or :class:`Module` node), or ``None`` if it has no docstring. + If *clean* is true, clean up the docstring's indentation with + :func:`inspect.cleandoc`. + + .. versionchanged:: 3.5 + :class:`AsyncFunctionDef` is now supported. + + .. versionchanged:: 3.7 + The docstring is now exported from the node docstring field, instead of + the first body statement. .. function:: fix_missing_locations(node) diff --git a/Doc/whatsnew/3.7.rst b/Doc/whatsnew/3.7.rst index f6367fd..861c537 100644 --- a/Doc/whatsnew/3.7.rst +++ b/Doc/whatsnew/3.7.rst @@ -196,6 +196,12 @@ Changes in the Python API Use the :meth:`~http.cookies.Morsel.set` method for setting them. (Contributed by Serhiy Storchaka in :issue:`29192`.) +* ``Module``, ``FunctionDef``, ``AsyncFunctionDef``, and + ``ClassDef`` AST nodes now have a new ``docstring`` field. + The first statement in their body is not considered as a docstring + anymore. ``co_firstlineno`` and ``co_lnotab`` of code object for class + and module are affected by this change. + (Contributed by INADA Naoki and Eugene Toder in :issue:`29463`.) CPython bytecode changes ------------------------ |