1 2 3 4 5 6 7 8 9 10 11 12 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 45 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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
"""Mopidy documentation build configuration file"""
import os
import sys
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__) + "/../"))
from mopidy.internal.versioning import get_version # isort:skip # noqa
# -- Workarounds to have autodoc generate API docs ----------------------------
class Mock:
def __init__(self, *args, **kwargs):
pass
def __call__(self, *args, **kwargs):
return Mock()
def __or__(self, other):
return Mock()
def __mro_entries__(self, bases):
return tuple()
@classmethod
def __getattr__(cls, name):
if name == "get_system_config_dirs": # GLib.get_system_config_dirs()
return list
elif name == "get_user_config_dir": # GLib.get_user_config_dir()
return str
else:
return Mock()
MOCK_MODULES = [
"dbus",
"dbus.mainloop",
"dbus.mainloop.glib",
"dbus.service",
"mopidy.internal.gi",
]
for mod_name in MOCK_MODULES:
sys.modules[mod_name] = Mock()
# -- Custom Sphinx setup ------------------------------------------------------
def setup(app):
# Add custom Sphinx object type for Mopidy's config values
app.add_object_type(
"confval",
"confval",
objname="configuration value",
indextemplate="pair: %s; configuration value",
)
# -- General configuration ----------------------------------------------------
needs_sphinx = "1.3"
extensions = [
"sphinx.ext.autodoc",
"sphinx.ext.extlinks",
"sphinx.ext.graphviz",
"sphinx.ext.intersphinx",
"sphinx.ext.viewcode",
"sphinx_rtd_theme",
]
templates_path = ["_templates"]
source_suffix = ".rst"
master_doc = "index"
project = "Mopidy"
copyright = "2009-2023, Stein Magnus Jodal and contributors"
release = get_version()
version = ".".join(release.split(".")[:2])
# To make the build reproducible, avoid using today's date in the manpages
today = "2021"
exclude_trees = ["_build"]
pygments_style = "sphinx"
modindex_common_prefix = ["mopidy."]
# -- Options for HTML output --------------------------------------------------
html_theme = "sphinx_rtd_theme"
html_static_path = ["_static"]
html_use_modindex = True
html_use_index = True
html_split_index = False
html_show_sourcelink = True
htmlhelp_basename = "Mopidy"
# -- Options for LaTeX output -------------------------------------------------
latex_documents = [
(
"index",
"Mopidy.tex",
"Mopidy Documentation",
"Stein Magnus Jodal and contributors",
"manual",
),
]
# -- Options for manpages output ----------------------------------------------
man_pages = [
("command", "mopidy", "music server", "", "1"),
]
# -- Options for extlink extension --------------------------------------------
extlinks = {
"issue": ("https://github.com/mopidy/mopidy/issues/%s", "#%s"),
"commit": ("https://github.com/mopidy/mopidy/commit/%s", "commit %s"),
"js": ("https://github.com/mopidy/mopidy.js/issues/%s", "mopidy.js#%s"),
"mpris": (
"https://github.com/mopidy/mopidy-mpris/issues/%s",
"mopidy-mpris#%s",
),
"discuss": (
"https://discourse.mopidy.com/t/%s",
"discourse.mopidy.com/t/%s",
),
}
# -- Options for intersphinx extension ----------------------------------------
intersphinx_mapping = {
"python": ("/usr/share/doc/python3-doc/html", None),
"pykka": ("/usr/share/doc/python3-pykka/html", None),
}
# -- Options for linkcheck builder -------------------------------------------
linkcheck_ignore = [ # Some sites work in browser but linkcheck fails.
r"http://localhost:\d+/",
r"http://wiki.commonjs.org",
r"http://vk.com",
r"http://$",
]
linkcheck_anchors = False # This breaks on links that use # for other stuff
|