| # -*- coding: utf-8 -*- | |
| # | |
| # Mobly documentation build configuration file, created by | |
| # sphinx-quickstart on Wed Feb 22 11:40:14 2017. | |
| # | |
| # This file is execfile()d with the current directory set to its | |
| # containing dir. | |
| # | |
| # Note that not all possible configuration values are present in this | |
| # autogenerated file. | |
| # | |
| # All configuration values have a default; values that are commented out | |
| # serve to show the default. | |
| # If extensions (or modules to document with autodoc) are in another directory, | |
| # add these directories to sys.path here. If the directory is relative to the | |
| # documentation root, use os.path.abspath to make it absolute, like shown here. | |
| # | |
| import os | |
| import sys | |
| from sphinx.ext import apidoc | |
| sys.path.insert(0, os.path.abspath(os.path.pardir)) | |
| # -- General configuration ------------------------------------------------ | |
| # If your documentation needs a minimal Sphinx version, state it here. | |
| # | |
| # needs_sphinx = '1.0' | |
| # Add any Sphinx extension module names here, as strings. They can be | |
| # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom | |
| # ones. | |
| extensions = [ | |
| 'sphinx.ext.autodoc', | |
| 'sphinx.ext.intersphinx', | |
| 'sphinx.ext.napoleon', | |
| 'sphinx.ext.todo', | |
| 'sphinx.ext.viewcode', | |
| 'sphinx_autodoc_typehints', | |
| 'myst_parser', | |
| ] | |
| # Intersphinx mapping to standard libraries | |
| intersphinx_mapping = { | |
| 'python': ('https://docs.python.org/3', None), | |
| } | |
| # MyST Parser configuration | |
| myst_enable_extensions = [ | |
| 'colon_fence', | |
| 'deflist', | |
| 'fieldlist', | |
| 'tasklist', | |
| ] | |
| # Add any paths that contain templates here, relative to this directory. | |
| templates_path = ['_templates'] | |
| # The suffix(es) of source filenames. | |
| # You can specify multiple suffix as a list of string: | |
| source_suffix = ['.rst', '.md'] | |
| # The master toctree document. | |
| master_doc = 'index' | |
| from importlib.metadata import PackageNotFoundError | |
| from importlib.metadata import version as get_version | |
| # General information about the project. | |
| project = 'Mobly' | |
| copyright = 'Copyright 2016 Google Inc.' | |
| author = 'Ang Li' | |
| try: | |
| release: str = get_version('mobly') | |
| version: str = '.'.join(release.split('.')[:2]) | |
| except PackageNotFoundError: | |
| version = '1.13' | |
| release = '1.13.1' | |
| # Napoleon settings for Google-style docstrings | |
| napoleon_google_docstring = True | |
| napoleon_numpy_docstring = False | |
| napoleon_include_init_with_doc = True | |
| napoleon_include_private_with_doc = False | |
| napoleon_include_special_with_doc = True | |
| napoleon_use_admonition_for_examples = True | |
| napoleon_use_admonition_for_notes = True | |
| napoleon_use_admonition_for_warnings = True | |
| napoleon_use_param = True | |
| napoleon_use_rtype = True | |
| napoleon_preprocess_types = True | |
| # The language for content autogenerated by Sphinx. Refer to documentation | |
| # for a list of supported languages. | |
| # | |
| # This is also used if you do content translation via gettext catalogs. | |
| # Usually you set "language" from the command line for these cases. | |
| language = 'en' | |
| # List of patterns, relative to source directory, that match files and | |
| # directories to ignore when looking for source files. | |
| # This patterns also effect to html_static_path and html_extra_path | |
| exclude_patterns = [ | |
| '_build', | |
| 'Thumbs.db', | |
| '.DS_Store', | |
| ] | |
| # The name of the Pygments (syntax highlighting) style to use. | |
| pygments_style = 'sphinx' | |
| # If true, `todo` and `todoList` produce output, else they produce nothing. | |
| todo_include_todos = True | |
| # -- Options for HTML output ---------------------------------------------- | |
| # The theme to use for HTML and HTML Help pages. See the documentation for | |
| # a list of builtin themes. | |
| # | |
| html_theme = 'furo' | |
| # Theme options are theme-specific and customize the look and feel of a theme | |
| # further. For a list of options available for each theme, see the | |
| # documentation. | |
| # | |
| # html_theme_options = {} | |
| # Add any paths that contain custom static files (such as style sheets) here, | |
| # relative to this directory. They are copied after the builtin static files, | |
| # so a file named "default.css" will overwrite the builtin "default.css". | |
| html_static_path = [] | |
| # -- Options for HTMLHelp output ------------------------------------------ | |
| # Output file base name for HTML help builder. | |
| htmlhelp_basename = 'Moblydoc' | |
| # -- Options for LaTeX output --------------------------------------------- | |
| latex_elements = { | |
| # The paper size ('letterpaper' or 'a4paper'). | |
| # | |
| # 'papersize': 'letterpaper', | |
| # The font size ('10pt', '11pt' or '12pt'). | |
| # | |
| # 'pointsize': '10pt', | |
| # Additional stuff for the LaTeX preamble. | |
| # | |
| # 'preamble': '', | |
| # Latex figure (float) alignment | |
| # | |
| # 'figure_align': 'htbp', | |
| } | |
| # Grouping the document tree into LaTeX files. List of tuples | |
| # (source start file, target name, title, | |
| # author, documentclass [howto, manual, or own class]). | |
| latex_documents = [ | |
| (master_doc, 'Mobly.tex', 'Mobly Documentation', 'Ang Li', 'manual'), | |
| ] | |
| # -- Options for manual page output --------------------------------------- | |
| # One entry per manual page. List of tuples | |
| # (source start file, name, description, authors, manual section). | |
| man_pages = [(master_doc, 'mobly', 'Mobly Documentation', [author], 1)] | |
| # -- Options for Texinfo output ------------------------------------------- | |
| # Grouping the document tree into Texinfo files. List of tuples | |
| # (source start file, target name, title, author, | |
| # dir menu entry, description, category) | |
| texinfo_documents = [ | |
| ( | |
| master_doc, | |
| 'Mobly', | |
| 'Mobly Documentation', | |
| author, | |
| 'Mobly', | |
| ( | |
| 'Mobly is a Python-based test framework that specializes in' | |
| ' supporting tests that require multiple devices, complex' | |
| ' environments, or custom hardware setups.' | |
| ), | |
| 'Miscellaneous', | |
| ), | |
| ] | |
| # -- Options for Epub output ---------------------------------------------- | |
| # Bibliographic Dublin Core info. | |
| epub_title = project | |
| epub_author = author | |
| epub_publisher = author | |
| epub_copyright = copyright | |
| # The unique identifier of the text. This can be a ISBN number | |
| # or the project homepage. | |
| # | |
| # epub_identifier = '' | |
| # A unique identification for the text. | |
| # | |
| # epub_uid = '' | |
| # A list of files that should not be packed into the epub file. | |
| epub_exclude_files = ['search.html'] | |
| def run_apidoc(_): | |
| """Automatically runs sphinx-apidoc on Sphinx builder initialization.""" | |
| cur_dir = os.path.abspath(os.path.dirname(__file__)) | |
| module_dir = os.path.abspath(os.path.join(cur_dir, os.path.pardir, 'mobly')) | |
| output_dir = cur_dir | |
| excludes = [ | |
| os.path.join(module_dir, '*_test.py'), | |
| os.path.join(module_dir, '**', '*_test.py'), | |
| ] | |
| apidoc.main( | |
| [ | |
| '--force', | |
| '--separate', | |
| '--module-first', | |
| '--no-toc', | |
| '-o', | |
| output_dir, | |
| module_dir, | |
| ] | |
| + excludes | |
| ) | |
| def setup(app): | |
| app.connect('builder-inited', run_apidoc) |