oc_orchestrator
Loading...
Searching...
No Matches
conf.py
Go to the documentation of this file.
1# Configuration file for the Sphinx documentation builder.
2#
3# Generated by: oct docs --sphinx / oct scaffold
4# Lives in: docs/_sphinx/conf.py
5
6import os
7import sys
8
9# Allow autodoc to import project modules
10# Path: _sphinx/ → docs/ → project_root/
11sys.path.insert(0, os.path.abspath('../..'))
12
13# -- Project information -----------------------------------------------------
14
15project = 'oc-orchestrator'
16copyright = '2026, Option C Dev Team'
17author = 'Option C Dev Team'
18release = '0.1.0'
19
20# -- General configuration ---------------------------------------------------
21
22extensions = [
23 'myst_parser',
24 'sphinxcontrib.mermaid',
25 'sphinx.ext.autosectionlabel',
26 'sphinx_copybutton',
27 'sphinx.ext.autodoc',
28 'sphinx.ext.autosummary',
29 'sphinx.ext.viewcode',
30 'sphinx.ext.inheritance_diagram',
31 'sphinx.ext.napoleon',
32]
33
34# Prefix section labels with document name to avoid duplicates across modules
35autosectionlabel_prefix_document = True
36
37myst_enable_extensions = [
38 'colon_fence',
39 'attrs_inline',
40 'smartquotes',
41 'replacements',
42]
43
44myst_heading_anchors = 3
45
46# Convert ```mermaid fenced blocks to Sphinx mermaid directives
47myst_fence_as_directive = {"mermaid"}
48
49# templates_path and html_static_path are relative to confdir (docs/_sphinx/)
50templates_path = ['../_templates']
51exclude_patterns = ['html', 'doctrees', 'old', 'code_reviews', 'sphinx_docs',
52 'source', '_sphinx', '_templates', '_autosummary',
53 'doxygen_output', 'doxygen_work_dir',
54 '.env*',
55 'Thumbs.db', '.DS_Store']
56
57# Suppress noisy warnings from markdown files
58suppress_warnings = ['myst.xref_missing', 'myst.header', 'docutils',
59 'autosectionlabel.*']
60
61# -- Autodoc configuration --------------------------------------------------
62
63autosummary_generate = True
64
65autodoc_default_options = {
66 'members': True,
67 'undoc-members': True,
68 'show-inheritance': True,
69 # Document each re-exported name once, where it is defined; otherwise an
70 # unqualified reference has two targets (operator-ruled 2026-09-27).
71 'ignore-module-all': True,
72}
73
74# Option C docstrings carry a numpy-style "Attributes" section. Napoleon's
75# default turns it into `.. attribute::` directives, which are index
76# entries; autodoc's undoc-members then documents the same dataclass field
77# again ("duplicate object description ... use :no-index:"). Rendering the
78# section as :ivar: fields leaves autodoc's entry as the only indexed one.
79# (operator-ruled 2026-09-27)
80napoleon_use_ivar = True
81
82# -- Options for HTML output -------------------------------------------------
83
84html_theme = 'sphinx_book_theme'
85html_static_path = ['../_static']
86html_css_files = ['custom.css']
87html_logo = '../_static/Option_C_logo.svg'
88
89html_theme_options = {
90 "repository_url": "",
91 "use_repository_button": False,
92 "use_fullscreen_button": True,
93 "use_download_button": True,
94 "home_page_in_toc": True,
95 "show_toc_level": 2,
96}