in tools/tensorflow_docs/api_generator/generate_lib.py [0:0]
def build(self, output_dir):
"""Build all the docs.
This produces python api docs:
* generated from `py_module`.
* written to '{output_dir}/api_docs/python/'
Args:
output_dir: Where to write the resulting docs.
"""
workdir = pathlib.Path(tempfile.mkdtemp())
# Extract the python api from the _py_modules
visitor = self.run_extraction()
reference_resolver = self.make_reference_resolver(visitor)
# Write the api docs.
parser_config = self.make_parser_config(visitor, reference_resolver)
work_py_dir = workdir / 'api_docs/python'
write_docs(
output_dir=str(work_py_dir),
parser_config=parser_config,
yaml_toc=self._yaml_toc,
root_title=self._root_title,
root_module_name=self._short_name.replace('.', '/'),
search_hints=self._search_hints,
site_path=self._site_path,
gen_redirects=self._gen_redirects,
gen_report=self._gen_report,
extra_docs=self._extra_docs,
page_builder_classes=self._page_builder_classes,
)
if self.api_cache:
reference_resolver.to_json_file(
str(work_py_dir / self._short_name.replace('.', '/') /
'_api_cache.json'))
os.makedirs(output_dir, exist_ok=True)
# Typical results are something like:
#
# out_dir/
# {short_name}/
# _redirects.yaml
# _toc.yaml
# api_report.pb
# index.md
# {short_name}.md
#
# Copy the top level files to the `{output_dir}/`, delete and replace the
# `{output_dir}/{short_name}/` directory.
for work_path in work_py_dir.glob('*'):
out_path = pathlib.Path(output_dir) / work_path.name
out_path.parent.mkdir(exist_ok=True, parents=True)
if work_path.is_file():
shutil.copy2(work_path, out_path)
elif work_path.is_dir():
shutil.rmtree(out_path, ignore_errors=True)
shutil.copytree(work_path, out_path)