Skip to content

Commit

Permalink
Remove separate script for nightly devsite diff (#4105)
Browse files Browse the repository at this point in the history
After the v0.11 release there is no need for a separate script for the extra modules.
I also added the fix for the code_prefix_url which should fix the issue with the broken "View Source" functionality.
An unrelated nit that I changed is the default value for the site_url parameter - we had this URL structure when we first had the internal staging site hosted on tensorflow's site, now it's in line with what we have live. 

For the next module extractions this script will need to cater for both the stable (v0.11) and the nightly (from master) version, it will be more manageable that way.

Fixes #4066.
Fixes #4104.
  • Loading branch information
balopat committed May 13, 2021
1 parent f7c1156 commit 115e50e
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 122 deletions.
52 changes: 39 additions & 13 deletions dev_tools/docs/build_api_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,15 @@
# ==============================================================================
"""Tool to generate external api_docs for Cirq.
This version is for the stable docs building that uses the v0.10 monolithic cirq
module. This will be replaced with build_api_docs_multi_module.py after v0.11 is
released.
In order to publish to our site, devsite runs two jobs for us: stable and nightly.
The stable one downloads the latest cirq release from pypi and uses that to generate the reference
API docs.
The nightly one downloads the latest cirq pre-release (pip install cirq --pre) and uses that to
generate the "nightly diff".
This script needs to cater for both of these cases.
"""

import os
import types

Expand All @@ -29,19 +34,21 @@
from tensorflow_docs.api_generator import public_api

import cirq
import cirq_google

from cirq import _doc

flags.DEFINE_string("output_dir", "/tmp/cirq_api", "Where to output the docs")
flags.DEFINE_string("output_dir", "docs/api_docs", "Where to output the docs")

flags.DEFINE_string(
"code_url_prefix",
"https://github.com/quantumlib/cirq/tree/master/cirq",
"https://github.com/quantumlib/Cirq/blob/master",
"The url prefix for links to code.",
)

flags.DEFINE_bool("search_hints", True, "Include metadata search hints in the generated files")

flags.DEFINE_string("site_path", "quark/cirq/api_docs/python", "Path prefix in the _toc.yaml")
flags.DEFINE_string("site_path", "reference/python", "Path prefix in the _toc.yaml")

FLAGS = flags.FLAGS

Expand All @@ -64,20 +71,19 @@ def filter_unwanted_inherited_methods(path, parent, children):


def main(unused_argv):
generate_cirq()
generate_cirq_google()


def generate_cirq():
doc_generator = generate_lib.DocGenerator(
root_title="Cirq",
py_modules=[("cirq", cirq)],
base_dir=os.path.dirname(cirq.__file__),
code_url_prefix=FLAGS.code_url_prefix,
code_url_prefix=FLAGS.code_url_prefix + "/cirq-core/cirq",
search_hints=FLAGS.search_hints,
site_path=FLAGS.site_path,
callbacks=[public_api.local_definitions_filter, filter_unwanted_inherited_methods],
private_map={
# Opt to not build docs for these paths for now since they error.
"cirq.google.engine.client.quantum.QuantumEngineServiceClient": ["enums"],
"cirq.google.engine.client.quantum_v1alpha1.QuantumEngineServiceClient": ["enums"],
"cirq.google.api": ["v1"],
},
extra_docs=_doc.RECORDED_CONST_DOCS,
)
doc_controls.decorate_all_class_attributes(
Expand All @@ -86,5 +92,25 @@ def main(unused_argv):
doc_generator.build(output_dir=FLAGS.output_dir)


def generate_cirq_google():
doc_generator = generate_lib.DocGenerator(
root_title="Cirq-google",
py_modules=[("cirq_google", cirq_google)],
base_dir=os.path.dirname(cirq_google.__file__),
code_url_prefix=FLAGS.code_url_prefix + "/cirq-google/cirq_google",
search_hints=FLAGS.search_hints,
site_path=FLAGS.site_path,
callbacks=[public_api.local_definitions_filter, filter_unwanted_inherited_methods],
private_map={
# Opt to not build docs for these paths for now since they error.
"cirq_google.engine.client.quantum.QuantumEngineServiceClient": ["enums"],
"cirq_google.engine.client.quantum_v1alpha1.QuantumEngineServiceClient": ["enums"],
"cirq_google.api": ["v1"],
},
extra_docs=_doc.RECORDED_CONST_DOCS,
)
doc_generator.build(output_dir=FLAGS.output_dir)


if __name__ == "__main__":
app.run(main)
109 changes: 0 additions & 109 deletions dev_tools/docs/build_api_docs_multi_module.py

This file was deleted.

0 comments on commit 115e50e

Please sign in to comment.