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
|
Description: allow nipype.sphinx.ext.apidoc Config to work with Sphinx 8.2.1+
Origin: upstream, https://github.com/nipy/nipype/commit/74149e03713def8a
Last-Update: 2025-05-07
--- a/nipype/sphinxext/apidoc/__init__.py
+++ b/nipype/sphinxext/apidoc/__init__.py
@@ -2,6 +2,9 @@
# vi: set ft=python sts=4 ts=4 sw=4 et:
"""Settings for sphinxext.interfaces and connection to sphinx-apidoc."""
import re
+from packaging.version import Version
+
+import sphinx
from sphinx.ext.napoleon import (
Config as NapoleonConfig,
_patch_python_domain,
@@ -39,13 +42,24 @@ class Config(NapoleonConfig):
"""
- _config_values = {
- "nipype_skip_classes": (
- ["Tester", "InputSpec", "OutputSpec", "Numpy", "NipypeTester"],
- "env",
- ),
- **NapoleonConfig._config_values,
- }
+ if Version(sphinx.__version__) >= Version("8.2.1"):
+ _config_values = (
+ (
+ "nipype_skip_classes",
+ ["Tester", "InputSpec", "OutputSpec", "Numpy", "NipypeTester"],
+ "env",
+ frozenset({list[str]}),
+ ),
+ *NapoleonConfig._config_values,
+ )
+ else:
+ _config_values = {
+ "nipype_skip_classes": (
+ ["Tester", "InputSpec", "OutputSpec", "Numpy", "NipypeTester"],
+ "env",
+ ),
+ **NapoleonConfig._config_values,
+ }
def setup(app):
@@ -82,8 +96,12 @@ def setup(app):
app.connect("autodoc-process-docstring", _process_docstring)
app.connect("autodoc-skip-member", _skip_member)
- for name, (default, rebuild) in Config._config_values.items():
- app.add_config_value(name, default, rebuild)
+ if Version(sphinx.__version__) >= Version("8.2.1"):
+ for name, default, rebuild, types in Config._config_values:
+ app.add_config_value(name, default, rebuild, types=types)
+ else:
+ for name, (default, rebuild) in Config._config_values.items():
+ app.add_config_value(name, default, rebuild)
return {"version": __version__, "parallel_read_safe": True}
|