Skip to content
Snippets Groups Projects
conf.py 3.92 KiB
Newer Older
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# https://brendanhasz.github.io/2019/01/05/sphinx.html
# -- Path setup --------------------------------------------------------------

# 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
David Hendriks's avatar
David Hendriks committed
# https://www.sphinx-doc.org/en/1.5/ext/example_google.html

# Include paths for python code
sys.path.insert(0, os.path.abspath("."))
sys.path.insert(0, os.path.join(os.getenv("BINARY_C"), "src/API/"))

# include paths for c code
cautodoc_root = os.path.abspath("../../")

# -- Project information -----------------------------------------------------

project = "binary_c-python"
David Hendriks's avatar
David Hendriks committed
copyright = "2021, David Hendriks, Robert Izzard"
David Hendriks's avatar
David Hendriks committed
author = "David Hendriks, Robert Izzard"


# -- General configuration ---------------------------------------------------

# 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.doctest",
David Hendriks's avatar
David Hendriks committed
    "sphinx.ext.todo",
    "sphinx.ext.coverage",
    "sphinx.ext.viewcode",
    "sphinx.ext.napoleon",
David Hendriks's avatar
David Hendriks committed
    "m2r2",
David Hendriks's avatar
David Hendriks committed
    "sphinx_autodoc_typehints",  # https://mypy.readthedocs.io/en/stable/cheat_sheet_py3.html
David Hendriks's avatar
David Hendriks committed

# Napoleon settings
David Hendriks's avatar
David Hendriks committed
napoleon_google_docstring = (
    True  # https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html
)
napoleon_numpy_docstring = False
David Hendriks's avatar
David Hendriks committed
napoleon_include_init_with_doc = False
napoleon_include_private_with_doc = False
napoleon_include_special_with_doc = True
napoleon_use_admonition_for_examples = False
napoleon_use_admonition_for_notes = False
napoleon_use_admonition_for_references = False
napoleon_use_ivar = False
napoleon_use_param = True
napoleon_use_rtype = True

source_suffix = [".rst", ".md"]
# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []


# -- 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 = "alabaster"
html_theme = "sphinx_rtd_theme"

# 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 = ["_static"]
David Hendriks's avatar
David Hendriks committed


"""Patching m2r2"""
import m2r2

current_m2r2_setup = m2r2.setup

David Hendriks's avatar
David Hendriks committed

David Hendriks's avatar
David Hendriks committed
def patched_m2r2_setup(app):
    try:
        return current_m2r2_setup(app)
    except (AttributeError):
        app.add_source_suffix(".md", "markdown")
        app.add_source_parser(m2r2.M2RParser)
    return dict(
David Hendriks's avatar
David Hendriks committed
        version=m2r2.__version__,
        parallel_read_safe=True,
        parallel_write_safe=True,
David Hendriks's avatar
David Hendriks committed

m2r2.setup = patched_m2r2_setup

# Generate some custom documentations for this version of binarycpython and binary_c
David Hendriks's avatar
David Hendriks committed
from binarycpython.utils.functions import (
    write_binary_c_parameter_descriptions_to_rst_file,
)
from binarycpython.utils.grid_options_defaults import write_grid_options_to_rst_file

print("Generating binary_c_parameters.rst")
write_binary_c_parameter_descriptions_to_rst_file("binary_c_parameters.rst")
print("Done")

print("Generating grid_options_descriptions.rst")
write_grid_options_to_rst_file("grid_options_descriptions.rst")
print("Done")
David Hendriks's avatar
David Hendriks committed

# Add