diff options
author | Jonathan Corbet <corbet@lwn.net> | 2019-05-21 16:42:34 -0400 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2019-05-23 11:23:11 -0400 |
commit | 2404dad1f67f8917e30fc22a85e0dbcc85b99955 (patch) | |
tree | c1fee7c5cf8d2444bb7bfa510935668402293a28 | |
parent | 096ea522e84ea68f8e6c41e5e7294731a81e29bc (diff) |
doc: Cope with the deprecation of AutoReporter
AutoReporter is going away; recent versions of sphinx emit a warning like:
Documentation/sphinx/kerneldoc.py:125:
RemovedInSphinx20Warning: AutodocReporter is now deprecated.
Use sphinx.util.docutils.switch_source_input() instead.
Make the switch. But switch_source_input() only showed up in 1.7, so we
have to do ugly version checks to keep things working in older versions.
Cc: stable@vger.kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
-rw-r--r-- | Documentation/sphinx/kerneldoc.py | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/Documentation/sphinx/kerneldoc.py b/Documentation/sphinx/kerneldoc.py index 200c8aa4a04f..1159405cb920 100644 --- a/Documentation/sphinx/kerneldoc.py +++ b/Documentation/sphinx/kerneldoc.py | |||
@@ -37,7 +37,17 @@ import glob | |||
37 | from docutils import nodes, statemachine | 37 | from docutils import nodes, statemachine |
38 | from docutils.statemachine import ViewList | 38 | from docutils.statemachine import ViewList |
39 | from docutils.parsers.rst import directives, Directive | 39 | from docutils.parsers.rst import directives, Directive |
40 | from sphinx.ext.autodoc import AutodocReporter | 40 | |
41 | # | ||
42 | # AutodocReporter is only good up to Sphinx 1.7 | ||
43 | # | ||
44 | import sphinx | ||
45 | |||
46 | Use_SSI = sphinx.__version__[:3] >= '1.7' | ||
47 | if Use_SSI: | ||
48 | from sphinx.util.docutils import switch_source_input | ||
49 | else: | ||
50 | from sphinx.ext.autodoc import AutodocReporter | ||
41 | 51 | ||
42 | import kernellog | 52 | import kernellog |
43 | 53 | ||
@@ -125,13 +135,7 @@ class KernelDocDirective(Directive): | |||
125 | lineoffset += 1 | 135 | lineoffset += 1 |
126 | 136 | ||
127 | node = nodes.section() | 137 | node = nodes.section() |
128 | buf = self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter | 138 | self.do_parse(result, node) |
129 | self.state.memo.reporter = AutodocReporter(result, self.state.memo.reporter) | ||
130 | self.state.memo.title_styles, self.state.memo.section_level = [], 0 | ||
131 | try: | ||
132 | self.state.nested_parse(result, 0, node, match_titles=1) | ||
133 | finally: | ||
134 | self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter = buf | ||
135 | 139 | ||
136 | return node.children | 140 | return node.children |
137 | 141 | ||
@@ -140,6 +144,20 @@ class KernelDocDirective(Directive): | |||
140 | (" ".join(cmd), str(e))) | 144 | (" ".join(cmd), str(e))) |
141 | return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))] | 145 | return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))] |
142 | 146 | ||
147 | def do_parse(self, result, node): | ||
148 | if Use_SSI: | ||
149 | with switch_source_input(self.state, result): | ||
150 | self.state.nested_parse(result, 0, node, match_titles=1) | ||
151 | else: | ||
152 | save = self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter | ||
153 | self.state.memo.reporter = AutodocReporter(result, self.state.memo.reporter) | ||
154 | self.state.memo.title_styles, self.state.memo.section_level = [], 0 | ||
155 | try: | ||
156 | self.state.nested_parse(result, 0, node, match_titles=1) | ||
157 | finally: | ||
158 | self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter = save | ||
159 | |||
160 | |||
143 | def setup(app): | 161 | def setup(app): |
144 | app.add_config_value('kerneldoc_bin', None, 'env') | 162 | app.add_config_value('kerneldoc_bin', None, 'env') |
145 | app.add_config_value('kerneldoc_srctree', None, 'env') | 163 | app.add_config_value('kerneldoc_srctree', None, 'env') |