diff --git a/tensorflow/tools/docs/generate2.py b/tensorflow/tools/docs/generate2.py index acbec299c18..4c41e5cf57c 100644 --- a/tensorflow/tools/docs/generate2.py +++ b/tensorflow/tools/docs/generate2.py @@ -78,10 +78,8 @@ flags.DEFINE_string("site_path", "", if tf.__version__.startswith('1'): PRIVATE_MAP = { - 'tf.contrib.autograph': ['utils', 'operators'], 'tf.test': ['mock'], - 'tf.contrib.estimator': ['python'], - 'tf': ['python', 'core', 'compiler', 'examples', 'tools'], + 'tf': ['python', 'core', 'compiler', 'examples', 'tools', 'contrib'], # There's some aliasing between the compats and v1/2s, so it's easier to # block by name and location than by deleting, or hiding objects. 'tf.compat.v1.compat': ['v1', 'v2'], @@ -89,45 +87,7 @@ if tf.__version__.startswith('1'): } DO_NOT_DESCEND_MAP = { - 'tf': ['cli', 'lib', 'wrappers'], - 'tf.contrib': [ - 'compiler', - 'grid_rnn', - # Block contrib.keras to de-clutter the docs - 'keras', - 'labeled_tensor', - 'quantization', - 'session_bundle', - 'slim', - 'solvers', - 'specs', - 'tensor_forest', - 'tensorboard', - 'testing', - 'tfprof', - ], - 'tf.contrib.bayesflow': [ - 'special_math', 'stochastic_gradient_estimators', - 'stochastic_variables' - ], - 'tf.contrib.ffmpeg': ['ffmpeg_ops'], - 'tf.contrib.graph_editor': [ - 'edit', 'match', 'reroute', 'subgraph', 'transform', 'select', 'util' - ], - 'tf.contrib.keras': ['api', 'python'], - 'tf.contrib.layers': ['feature_column', 'summaries'], - 'tf.contrib.learn': [ - 'datasets', - 'head', - 'graph_actions', - 'io', - 'models', - 'monitors', - 'ops', - 'preprocessing', - 'utils', - ], - 'tf.contrib.util': ['loader'], + 'tf': ['cli', 'lib', 'wrappers', 'contrib'], } else: PRIVATE_MAP = { diff --git a/tensorflow/tools/docs/generate_lib.py b/tensorflow/tools/docs/generate_lib.py index 77a685062ae..3bd0fd615f4 100644 --- a/tensorflow/tools/docs/generate_lib.py +++ b/tensorflow/tools/docs/generate_lib.py @@ -229,10 +229,9 @@ def add_dict_to_dict(add_from, add_to): # Exclude some libraries in contrib from the documentation altogether. def _get_default_private_map(): return { - 'tf.contrib.autograph': ['utils', 'operators'], 'tf.test': ['mock'], + 'tf': ['contrib'], 'tf.compat': ['v1', 'v2'], - 'tf.contrib.estimator': ['python'], } @@ -241,44 +240,6 @@ def _get_default_do_not_descend_map(): # TODO(markdaoust): Use docs_controls decorators, locally, instead. return { 'tf': ['cli', 'lib', 'wrappers'], - 'tf.contrib': [ - 'compiler', - 'grid_rnn', - # Block contrib.keras to de-clutter the docs - 'keras', - 'labeled_tensor', - 'quantization', - 'session_bundle', - 'slim', - 'solvers', - 'specs', - 'tensor_forest', - 'tensorboard', - 'testing', - 'tfprof', - ], - 'tf.contrib.bayesflow': [ - 'special_math', 'stochastic_gradient_estimators', - 'stochastic_variables' - ], - 'tf.contrib.ffmpeg': ['ffmpeg_ops'], - 'tf.contrib.graph_editor': [ - 'edit', 'match', 'reroute', 'subgraph', 'transform', 'select', 'util' - ], - 'tf.contrib.keras': ['api', 'python'], - 'tf.contrib.layers': ['feature_column', 'summaries'], - 'tf.contrib.learn': [ - 'datasets', - 'head', - 'graph_actions', - 'io', - 'models', - 'monitors', - 'ops', - 'preprocessing', - 'utils', - ], - 'tf.contrib.util': ['loader'], } diff --git a/tensorflow/tools/docs/parser.py b/tensorflow/tools/docs/parser.py index d6426cfd6de..61518bcbd46 100644 --- a/tensorflow/tools/docs/parser.py +++ b/tensorflow/tools/docs/parser.py @@ -1660,8 +1660,7 @@ class _GeneratedFile(object): return True def __str__(self): - return 'Defined in generated file: `%s%s`.\n\n' % (self.path_prefix, - self.path) + return '' def _get_defined_in(py_object, parser_config): diff --git a/tensorflow/tools/docs/pretty_docs.py b/tensorflow/tools/docs/pretty_docs.py index d7237b1a39a..e215d19f403 100644 --- a/tensorflow/tools/docs/pretty_docs.py +++ b/tensorflow/tools/docs/pretty_docs.py @@ -61,10 +61,7 @@ def _build_function_page(page_info): """Given a FunctionPageInfo object Return the page as an md string.""" parts = ['# %s\n\n' % page_info.full_name] - if len(page_info.aliases) > 1: - parts.append('### Aliases:\n\n') - parts.extend('* `%s`\n' % name for name in page_info.aliases) - parts.append('\n') + parts.append(_build_aliases(page_info.aliases)) if page_info.signature is not None: parts.append(_build_signature(page_info)) @@ -105,10 +102,7 @@ def _build_class_page(page_info): 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) - parts.append('\n') + parts.append(_build_aliases(page_info.aliases)) if page_info.defined_in is not None: parts.append('\n\n') @@ -203,10 +197,7 @@ 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)] - if len(page_info.aliases) > 1: - parts.append('### Aliases:\n\n') - parts.extend('* Module `%s`\n' % name for name in page_info.aliases) - parts.append('\n') + parts.append(_build_aliases(page_info.aliases)) if page_info.defined_in is not None: parts.append('\n\n') @@ -323,3 +314,14 @@ def _build_function_details(function_details): parts.append(''.join(sub)) return '\n'.join(parts) + + +def _build_aliases(aliases): + aliases = sorted(aliases, key=lambda x: ('compat.v' in x, x)) + parts = [] + if len(aliases) > 1: + parts.append('**Aliases**: ') + parts.extend(', '.join('`{}`'.format(name) for name in aliases)) + parts.append('\n\n') + + return ''.join(parts)