From 5de4b6af0678c4151734f750f916519dd0db36f6 Mon Sep 17 00:00:00 2001 From: Mikhail Golubev Date: Thu, 23 Mar 2017 17:42:23 +0300 Subject: [PATCH] PY-23255 Support both ":return:" and ":returns:" tags in ReST --- python/helpers/docstring_formatter.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/python/helpers/docstring_formatter.py b/python/helpers/docstring_formatter.py index 162abc28a739..3a641e74bb30 100644 --- a/python/helpers/docstring_formatter.py +++ b/python/helpers/docstring_formatter.py @@ -194,8 +194,8 @@ def format_rest(docstring): fields[param_name] = field_node if param_type: field_node.type = param_type - if field_name_raw == "return": - fields["return"] = field_node + if field_name_raw in ("return", "returns"): + fields[field_name_raw] = field_node for field_node in list(node.children): if len(field_node.children) < 2: @@ -213,13 +213,20 @@ def format_rest(docstring): field_body_node.children[:] = [] fields[param_name].type = param_type elif field_name_raw == "rtype": - if "return" in fields: + existing_return_tag = None + if "returns" in fields: + existing_return_tag = "returns" + elif "return" in fields: + existing_return_tag = "return" + + if existing_return_tag: node.children.remove(field_node) else: - fields["return"] = field_node - field_name_node.children[0] = Text("return") + existing_return_tag = "return" + fields[existing_return_tag] = field_node + field_name_node.children[0] = Text(existing_return_tag) field_body_node.children[:] = [] - fields["return"].type = param_type + fields[existing_return_tag].type = param_type HTMLTranslator.visit_field_list(self, node)