Skip to content

Commit c42cf5c

Browse files
committed
Documentation build improvements
* Switch to 'furo' theme * Update to Sphinx v7 * Skip inherited enum members * Skip overwriting unchanged API docs source
1 parent ff932b9 commit c42cf5c

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

docs/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
sphinx ~= 5.0
2-
sphinx-rtd-theme ~= 1.0
1+
furo ~= 2024.0
2+
sphinx ~= 7.0

docs/src/conf.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""Sphinx documentation generation configuration."""
22

3+
import enum
34
import types
45
import inspect
56
import pathlib
@@ -22,7 +23,7 @@
2223
"sphinx.ext.intersphinx",
2324
]
2425

25-
html_theme = "sphinx_rtd_theme"
26+
html_theme = "furo"
2627

2728
autosummary_generate = False
2829
intersphinx_mapping = {'python': ('https://docs.python.org/3', None)}
@@ -75,19 +76,24 @@ def _generate_api_docs() -> None:
7576

7677
lines += ["", f".. auto{type_name}:: {name}"]
7778
if type_name == "class":
79+
if not issubclass(export, enum.Enum):
80+
lines += [" :inherited-members:"]
7881
lines += [
79-
" :inherited-members:",
8082
" :members:",
8183
" :undoc-members:",
8284
]
8385
elif type_name == "exception":
8486
lines += [" :members:"]
8587
lines += [""]
8688

89+
module_rst = "\n".join(lines)
90+
8791
module_rst_reference = f"swf_typed.{module_name}"
8892
module_rst_references.append(module_rst_reference)
93+
8994
module_path = source_dir / f"{module_rst_reference}.rst"
90-
module_path.write_text("\n".join(lines))
95+
if not module_path.is_file() or module_path.read_text() != module_rst:
96+
module_path.write_text(module_rst)
9197

9298
lines = [
9399
r"swf\_typed",
@@ -102,8 +108,11 @@ def _generate_api_docs() -> None:
102108
lines += [f" {n}" for n in module_rst_references]
103109
lines += [""]
104110

111+
api_docs_rst = "\n".join(lines)
112+
105113
api_docs_path = source_dir / f"swf_typed.rst"
106-
api_docs_path.write_text("\n".join(lines))
114+
if not api_docs_path.is_file() or api_docs_path.read_text() != api_docs_rst:
115+
api_docs_path.write_text(api_docs_rst)
107116

108117

109118
_generate_api_docs()

0 commit comments

Comments
 (0)