conf.py 3.07 KB
Newer Older
Rahix's avatar
Rahix committed
1
2
3
4
5
6
7
8
9
10
11
import os
import subprocess
import sys
import time
import sphinx.util.logging

# 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.
#
sys.path.insert(0, os.path.abspath("../pycardium/modules/py"))
ch3's avatar
ch3 committed
12
sys.path.insert(0, os.path.abspath("./"))
Rahix's avatar
Rahix committed
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

logger = sphinx.util.logging.getLogger("card10/conf.py")


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

project = "card10-firmware"
copyright = "2019"

# The full version, including alpha/beta/rc tags
release = subprocess.check_output(
    ["git", "describe", "--long", "--always"]
).decode().strip()
release += "<br />"
release += time.strftime("%F %R")
version = release


# -- 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.viewcode",
    "sphinx.ext.ifconfig",
]

# 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.
ch3's avatar
ch3 committed
45
exclude_patterns = ["output", "Thumbs.db", ".DS_Store", "hawkmoth"]
Rahix's avatar
Rahix committed
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86

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

# The Read the Docs theme is available from
# - https://github.com/snide/sphinx_rtd_theme
# - https://pypi.python.org/pypi/sphinx_rtd_theme
# - python-sphinx-rtd-theme package (on Debian)
try:
    import sphinx_rtd_theme
    html_theme = "sphinx_rtd_theme"
    html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
    pygments_style = "monokai"
except ImportError:
    logger.warning("The Sphinx \"sphinx_rtd_theme\" HTML theme was not found. Make sure you have the theme installed to produce pretty HTML output. Falling back to the default 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"]
# }}}

# -- Options for Auto-Doc ---------------------------------------------------- {{{
autodoc_mock_imports = [
    "ucollections",
    "urandom",
    "utime",
]

autodoc_member_order = "bysource"
# }}}

# -- Options for Hawkmoth ---------------------------------------------------- {{{
has_hawkmoth = False
try:
    # Attempt importing hawkmoth
    import hawkmoth  # noqa: F401
    extensions.append("hawkmoth")

    cautodoc_root = os.path.abspath("..")
    has_hawkmoth = True
ch3's avatar
ch3 committed
87
88
89
except ImportError as e:
    if e.name == "clang":
        logger.warning("hawkmoth requires the clang python module.  Documentation for Epicardium API will not be generated.")
Rahix's avatar
Rahix committed
90
91
92
93
94
95
# }}}


# -- Sphinx Setup ------------------------------------------------------------
def setup(app):
    app.add_config_value("has_hawkmoth", has_hawkmoth, "")