Skip to content
Snippets Groups Projects
conf.py 3.54 KiB
Newer Older
#
# Copyright (C) 2021 Associated Universities, Inc. Washington DC, USA.
#
# This file is part of NRAO Workspaces.
#
# Workspaces is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Workspaces is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Workspaces.  If not, see <https://www.gnu.org/licenses/>.
# 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

# -- 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.
#
Daniel Lyons's avatar
Daniel Lyons committed
import pathlib
Charlotte Hausman's avatar
Charlotte Hausman committed
from unittest.mock import MagicMock
Daniel Lyons's avatar
Daniel Lyons committed

sys.path.insert(0, os.path.abspath(".."))
Daniel Lyons's avatar
Daniel Lyons committed
for group in ["apps", "services", "shared"]:
    for setupfile in (pathlib.Path("..") / group).rglob("setup.py"):
Charlotte Hausman's avatar
Charlotte Hausman committed
        if not "venv" in str(setupfile):
            sys.path.append(str(setupfile.parent))

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

project = "Workspaces"
copyright = "2020, NRAO"
author = "NRAO Science Support and Archive Team"


# -- 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.autosummary", "myst_parser"]

# 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.
Charlotte Hausman's avatar
Charlotte Hausman committed
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", "**/site-packages"]
# -- Markdown suffix
source_suffix = {
    ".rst": "restructuredtext",
    ".md": "markdown",
}

# -- Options for HTML output -------------------------------------------------

# The theme to use for HTML and HTML Help pages.  See the documentation for
# a list of builtin themes.
#

# 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"]
Charlotte Hausman's avatar
Charlotte Hausman committed


# Prevent us from generating the documentation for a few stupid modules
class Mock(MagicMock):
    @classmethod
    def __getattr__(cls, name):
        return MagicMock()


MOCK_MODULES = [
    "numpy",
    "redis",
    "dsnparse",
    "polynomial",
    "distutils",
    "distutils.dir_util",
    "distutils.util",
    "cython",
    "MySQLdb",
    "f2py",
    "fft",
    "examples",
    "random",
    "astropy",
Daniel Lyons's avatar
Daniel Lyons committed
    "htchirp",
Charlotte Hausman's avatar
Charlotte Hausman committed
]
sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES)