canaille-globuzma/doc/conf.py

182 lines
5.4 KiB
Python
Raw Permalink Normal View History

2020-11-06 10:44:25 +00:00
#!/usr/bin/env python3
2022-05-13 09:44:23 +00:00
import datetime
2020-11-06 10:44:25 +00:00
import os
2024-12-19 11:55:12 +00:00
import pathlib
2020-11-06 10:44:25 +00:00
import sys
2023-06-03 13:37:24 +00:00
from importlib import metadata
2021-12-20 22:57:27 +00:00
from unittest import mock
2020-11-06 10:44:25 +00:00
2020-11-06 12:47:47 +00:00
sys.path.insert(0, os.path.abspath(".."))
sys.path.insert(0, os.path.abspath("../canaille"))
2020-11-06 10:44:25 +00:00
2020-11-06 12:47:47 +00:00
# Readthedocs does not support C modules, so
# we have to mock them.
class Mock(mock.MagicMock):
@classmethod
def __getattr__(cls, name):
return mock.MagicMock()
MOCK_MODULES = ["ldap"]
sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES)
2020-11-06 10:44:25 +00:00
# -- General configuration ------------------------------------------------
extensions = [
"sphinx.ext.autodoc",
2023-12-24 14:59:39 +00:00
"sphinx.ext.autosectionlabel",
2020-11-06 10:44:25 +00:00
"sphinx.ext.doctest",
"sphinx.ext.graphviz",
"sphinx.ext.intersphinx",
"sphinx.ext.todo",
"sphinx.ext.viewcode",
2024-05-08 08:25:24 +00:00
"sphinx_click",
"sphinx_design",
2020-11-06 10:44:25 +00:00
"sphinx_issues",
"sphinxcontrib.autodoc_pydantic",
2024-12-16 17:17:42 +00:00
"jinja_autodoc",
2020-11-06 10:44:25 +00:00
]
2024-03-28 13:22:07 +00:00
source_suffix = {
".rst": "restructuredtext",
".md": "markdown",
}
2020-11-06 10:44:25 +00:00
master_doc = "index"
project = "canaille"
2022-05-13 09:44:23 +00:00
year = datetime.datetime.now().strftime("%Y")
copyright = f"{year}, Yaal Coop"
author = "Yaal Coop"
2020-11-06 10:44:25 +00:00
2024-03-27 20:17:30 +00:00
version = metadata.version("canaille")
language = "en"
2020-11-06 10:44:25 +00:00
exclude_patterns = []
pygments_style = "sphinx"
todo_include_todos = True
toctree_collapse = False
2020-11-06 10:44:25 +00:00
intersphinx_mapping = {
"python": ("https://docs.python.org/3", None),
2023-12-24 14:59:39 +00:00
"authlib": ("https://docs.authlib.org/en/latest", None),
"flask": ("https://flask.palletsprojects.com", None),
"flask-alembic": ("https://flask-alembic.readthedocs.io/en/latest", None),
2023-12-24 14:59:39 +00:00
"flask-babel": ("https://python-babel.github.io/flask-babel", None),
"flask-wtf": ("https://flask-wtf.readthedocs.io", None),
"pydantic": ("https://docs.pydantic.dev/latest", None),
"pytest-iam": ("https://pytest-iam.readthedocs.io/en/latest/", None),
2024-12-16 17:17:42 +00:00
"wtforms": ("https://wtforms.readthedocs.io", None),
2024-12-19 09:19:29 +00:00
"scim2-cli": ("https://scim2-cli.readthedocs.io/en/latest", None),
2020-11-06 10:44:25 +00:00
}
issues_uri = "https://gitlab.com/yaal/canaille/-/issues/{issue}"
issues_pr_uri = "https://gitlab.com/yaal/canaille/-/merge_requests/{pr}"
issues_commit_uri = "https://gitlab.com/yaal/canaille/-/commit/{commit}"
# -- Options for HTML output ----------------------------------------------
html_theme = "shibuya"
html_static_path = ["_static"]
2024-03-27 20:17:30 +00:00
html_baseurl = "https://canaille.readthedocs.io/"
html_theme_options = {
"globaltoc_expand_depth": 3,
"accent_color": "yellow",
"light_logo": "_static/canaille-label-black.webp",
"dark_logo": "_static/canaille-label-white.webp",
"gitlab_url": "https://gitlab.com/yaal/canaille",
"mastodon_url": "https://toot.aquilenet.fr/@yaal",
"discussion_url": "https://matrix.to/#/#canaille-discuss:yaal.coop",
"nav_links": [
{
"title": "Demo",
"children": [
{
"title": "Canaille demo server",
"url": "https://demo.canaille.yaal.coop",
},
{
"title": "OIDC Client 1",
"url": "https://demo.client1.yaal.coop",
},
{
"title": "OIDC Client 2",
"url": "https://demo.client2.yaal.coop",
},
],
},
{"title": "PyPI", "url": "https://pypi.org/project/Canaille"},
{
"title": "Weblate",
"url": "https://hosted.weblate.org/projects/canaille/canaille",
},
],
}
html_context = {
"source_type": "gitlab",
"source_user": "yaal",
"source_repo": "canaille",
"source_version": "main",
"source_docs_path": "/doc/",
2024-11-24 16:27:15 +00:00
"languages": [
2024-11-26 13:01:07 +00:00
("English", "/en/latest/%s.html"),
("Français", "/fr/latest/%s.html"),
2024-11-24 16:27:15 +00:00
],
}
2020-11-06 10:44:25 +00:00
# -- Options for HTMLHelp output ------------------------------------------
htmlhelp_basename = "canailledoc"
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {}
latex_documents = [
(master_doc, "canaille.tex", "canaille Documentation", "Yaal", "manual")
]
# -- Options for manual page output ---------------------------------------
man_pages = [(master_doc, "canaille", "canaille Documentation", [author], 1)]
# -- Options for Texinfo output -------------------------------------------
texinfo_documents = [
(
master_doc,
"canaille",
"canaille Documentation",
author,
"canaille",
"One line description of project.",
"Miscellaneous",
)
]
2023-12-24 14:59:39 +00:00
# -- Options for autosectionlabel -----------------------------------------
autosectionlabel_prefix_document = True
autosectionlabel_maxdepth = 2
# -- Options for autodoc_pydantic_settings -------------------------------------------
autodoc_pydantic_settings_show_json = False
autodoc_pydantic_settings_show_config_summary = False
autodoc_pydantic_settings_show_config_summary = False
autodoc_pydantic_settings_show_validator_summary = False
autodoc_pydantic_settings_show_validator_members = False
autodoc_pydantic_settings_show_field_summary = False
autodoc_pydantic_settings_signature_prefix = ""
autodoc_pydantic_field_signature_prefix = ""
autodoc_pydantic_field_list_validators = False
# -- Translation options ------------------------------------------------------
# Advised by https://docs.readthedocs.io/en/latest/guides/manage-translations-sphinx.html#create-translatable-files
gettext_uuid = True
2024-11-22 16:45:06 +00:00
gettext_compact = "doc"
2024-12-16 17:17:42 +00:00
2024-12-19 11:55:12 +00:00
jinja_template_path = str(
pathlib.Path(__file__).parent.parent.resolve() / "canaille/templates"
)