aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/tools/docs
diff options
context:
space:
mode:
authorGravatar Mark Daoust <markdaoust@google.com>2018-08-30 20:35:06 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-08-30 20:39:57 -0700
commit06ea8fb214b1b859b211ded0bbe31726214ee3f2 (patch)
treeef2dd0fb11b24dfef5ecff3ddfe78b0a978af77e /tensorflow/tools/docs
parent722f00f21b7b75d9b4e690eb900c3aeaeb25b4bf (diff)
Move constructors to top of class pages.
PiperOrigin-RevId: 211028025
Diffstat (limited to 'tensorflow/tools/docs')
-rw-r--r--tensorflow/tools/docs/pretty_docs.py66
1 files changed, 45 insertions, 21 deletions
diff --git a/tensorflow/tools/docs/pretty_docs.py b/tensorflow/tools/docs/pretty_docs.py
index 63d4fef91c..aecf753a58 100644
--- a/tensorflow/tools/docs/pretty_docs.py
+++ b/tensorflow/tools/docs/pretty_docs.py
@@ -93,6 +93,15 @@ def _build_class_page(page_info):
parts.append('\n\n')
+ # Sort the methods list, but make sure constructors come first.
+ constructor_names = ['__init__', '__new__']
+ constructors = sorted(
+ method for method in page_info.methods
+ if method.short_name in constructor_names)
+ other_methods = sorted(
+ method for method in page_info.methods
+ if method.short_name not in constructor_names)
+
if len(page_info.aliases) > 1:
parts.append('### Aliases:\n\n')
parts.extend('* Class `%s`\n' % name for name in page_info.aliases)
@@ -109,6 +118,11 @@ def _build_class_page(page_info):
parts.append('\n\n')
+ if constructors:
+ for method_info in constructors:
+ parts.append(_build_method_section(method_info, heading_level=2))
+ parts.append('\n\n')
+
if page_info.classes:
parts.append('## Child Classes\n')
@@ -134,28 +148,11 @@ def _build_class_page(page_info):
parts.append('\n\n')
- if page_info.methods:
+ if other_methods:
parts.append('## Methods\n\n')
- # Sort the methods list, but make sure constructors come first.
- constructors = ['__init__', '__new__']
- inits = [method for method in page_info.methods
- if method.short_name in constructors]
- others = [method for method in page_info.methods
- if method.short_name not in constructors]
-
- for method_info in sorted(inits) + sorted(others):
- h3 = ('<h3 id="{short_name}">'
- '<code>{short_name}</code>'
- '</h3>\n\n')
- parts.append(h3.format(**method_info._asdict()))
-
- if method_info.signature is not None:
- parts.append(_build_signature(method_info, use_full_name=False))
-
- parts.append(method_info.doc.docstring)
- parts.append(_build_function_details(method_info.doc.function_details))
- parts.append(_build_compatibility(method_info.doc.compatibility))
- parts.append('\n\n')
+
+ for method_info in other_methods:
+ parts.append(_build_method_section(method_info))
parts.append('\n\n')
if page_info.other_members:
@@ -172,6 +169,33 @@ def _build_class_page(page_info):
return ''.join(parts)
+def _build_method_section(method_info, heading_level=3):
+ """Generates a markdown section for a method.
+
+ Args:
+ method_info: A `MethodInfo` object.
+ heading_level: An Int, which HTML heading level to use.
+
+ Returns:
+ A markdown string.
+ """
+ parts = []
+ heading = ('<h{heading_level} id="{short_name}">'
+ '<code>{short_name}</code>'
+ '</h{heading_level}>\n\n')
+ parts.append(heading.format(heading_level=heading_level,
+ **method_info._asdict()))
+
+ if method_info.signature is not None:
+ parts.append(_build_signature(method_info, use_full_name=False))
+
+ parts.append(method_info.doc.docstring)
+ parts.append(_build_function_details(method_info.doc.function_details))
+ parts.append(_build_compatibility(method_info.doc.compatibility))
+ parts.append('\n\n')
+ return ''.join(parts)
+
+
def _build_module_page(page_info):
"""Given a ClassPageInfo object Return the page as an md string."""
parts = ['# Module: {full_name}\n\n'.format(full_name=page_info.full_name)]