diff options
author | Mark Daoust <markdaoust@google.com> | 2018-08-30 20:35:06 -0700 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2018-08-30 20:39:57 -0700 |
commit | 06ea8fb214b1b859b211ded0bbe31726214ee3f2 (patch) | |
tree | ef2dd0fb11b24dfef5ecff3ddfe78b0a978af77e /tensorflow/tools/docs | |
parent | 722f00f21b7b75d9b4e690eb900c3aeaeb25b4bf (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.py | 66 |
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)] |