From 73cbe7a01a22d02dbe1ec841e8779c775cad3d08 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Tue, 29 May 2018 12:04:55 +0300 Subject: bpo-32911: Revert bpo-29463. (GH-7121) (GH-7197) Remove the docstring attribute of AST types and restore docstring expression as a first stmt in their body. Co-authored-by: INADA Naoki --- Lib/ast.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'Lib/ast.py') diff --git a/Lib/ast.py b/Lib/ast.py index 2ecb03f38b..134d9d2758 100644 --- a/Lib/ast.py +++ b/Lib/ast.py @@ -206,7 +206,15 @@ def get_docstring(node, clean=True): """ if not isinstance(node, (AsyncFunctionDef, FunctionDef, ClassDef, Module)): raise TypeError("%r can't have docstrings" % node.__class__.__name__) - text = node.docstring + if not node.body: + return None + node = node.body[0].value + if isinstance(node, Str): + text = node.s + elif isinstance(node, Constant) and isinstance(node.value, str): + text = node.value + else: + return None if clean and text: import inspect text = inspect.cleandoc(text) -- cgit v1.2.1