2
2
# vi: set ft=python sts=4 ts=4 sw=4 et:
3
3
"""Settings for sphinxext.interfaces and connection to sphinx-apidoc."""
4
4
import re
5
+ from packaging .version import Version
6
+
7
+ import sphinx
5
8
from sphinx .ext .napoleon import (
6
9
Config as NapoleonConfig ,
7
10
_patch_python_domain ,
@@ -39,13 +42,24 @@ class Config(NapoleonConfig):
39
42
40
43
"""
41
44
42
- _config_values = {
43
- "nipype_skip_classes" : (
44
- ["Tester" , "InputSpec" , "OutputSpec" , "Numpy" , "NipypeTester" ],
45
- "env" ,
46
- ),
47
- ** NapoleonConfig ._config_values ,
48
- }
45
+ if Version (sphinx .__version__ ) >= Version ("8.2.1" ):
46
+ _config_values = (
47
+ (
48
+ "nipype_skip_classes" ,
49
+ ["Tester" , "InputSpec" , "OutputSpec" , "Numpy" , "NipypeTester" ],
50
+ "env" ,
51
+ frozenset ({list [str ]}),
52
+ ),
53
+ * NapoleonConfig ._config_values ,
54
+ )
55
+ else :
56
+ _config_values = {
57
+ "nipype_skip_classes" : (
58
+ ["Tester" , "InputSpec" , "OutputSpec" , "Numpy" , "NipypeTester" ],
59
+ "env" ,
60
+ ),
61
+ ** NapoleonConfig ._config_values ,
62
+ }
49
63
50
64
51
65
def setup (app ):
@@ -82,8 +96,12 @@ def setup(app):
82
96
app .connect ("autodoc-process-docstring" , _process_docstring )
83
97
app .connect ("autodoc-skip-member" , _skip_member )
84
98
85
- for name , (default , rebuild ) in Config ._config_values .items ():
86
- app .add_config_value (name , default , rebuild )
99
+ if Version (sphinx .__version__ ) >= Version ("8.2.1" ):
100
+ for name , default , rebuild , types in Config ._config_values :
101
+ app .add_config_value (name , default , rebuild , types = types )
102
+ else :
103
+ for name , (default , rebuild ) in Config ._config_values .items ():
104
+ app .add_config_value (name , default , rebuild )
87
105
return {"version" : __version__ , "parallel_read_safe" : True }
88
106
89
107
0 commit comments