|
@@ -38,20 +38,14 @@
|
|
|
from docutils.statemachine import ViewList
|
|
|
from docutils.parsers.rst import directives, Directive
|
|
|
|
|
|
-#
|
|
|
-# AutodocReporter is only good up to Sphinx 1.7
|
|
|
-#
|
|
|
import sphinx
|
|
|
+from sphinx.util import logging
|
|
|
+from sphinx.util.docutils import switch_source_input
|
|
|
|
|
|
-Use_SSI = sphinx.__version__[:3] >= '1.7'
|
|
|
-if Use_SSI:
|
|
|
- from sphinx.util.docutils import switch_source_input
|
|
|
-else:
|
|
|
- from sphinx.ext.autodoc import AutodocReporter
|
|
|
-
|
|
|
-import kernellog
|
|
|
|
|
|
__version__ = '1.0'
|
|
|
+logger = logging.getLogger('kerneldoc')
|
|
|
+
|
|
|
|
|
|
class KernelDocDirective(Directive):
|
|
|
"""Extract kernel-doc comments from the specified file"""
|
|
@@ -111,8 +105,7 @@ def run(self):
|
|
|
cmd += [filename]
|
|
|
|
|
|
try:
|
|
|
- kernellog.verbose(env.app,
|
|
|
- 'calling kernel-doc \'%s\'' % (" ".join(cmd)))
|
|
|
+ logger.verbose('calling kernel-doc \'%s\'' % (" ".join(cmd)))
|
|
|
|
|
|
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
|
out, err = p.communicate()
|
|
@@ -122,8 +115,10 @@ def run(self):
|
|
|
if p.returncode != 0:
|
|
|
sys.stderr.write(err)
|
|
|
|
|
|
- kernellog.warn(env.app,
|
|
|
- 'kernel-doc \'%s\' failed with return code %d' % (" ".join(cmd), p.returncode))
|
|
|
+ logger.warning(
|
|
|
+ 'kernel-doc \'%s\' failed with return code %d' %
|
|
|
+ (" ".join(cmd), p.returncode)
|
|
|
+ )
|
|
|
return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))]
|
|
|
elif env.config.kerneldoc_verbosity > 0:
|
|
|
sys.stderr.write(err)
|
|
@@ -149,22 +144,13 @@ def run(self):
|
|
|
return node.children
|
|
|
|
|
|
except Exception as e: # pylint: disable=W0703
|
|
|
- kernellog.warn(env.app, 'kernel-doc \'%s\' processing failed with: %s' %
|
|
|
+ logger.warning('kernel-doc \'%s\' processing failed with: %s' %
|
|
|
(" ".join(cmd), str(e)))
|
|
|
return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))]
|
|
|
|
|
|
def do_parse(self, result, node):
|
|
|
- if Use_SSI:
|
|
|
- with switch_source_input(self.state, result):
|
|
|
- self.state.nested_parse(result, 0, node, match_titles=1)
|
|
|
- else:
|
|
|
- save = self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter
|
|
|
- self.state.memo.reporter = AutodocReporter(result, self.state.memo.reporter)
|
|
|
- self.state.memo.title_styles, self.state.memo.section_level = [], 0
|
|
|
- try:
|
|
|
- self.state.nested_parse(result, 0, node, match_titles=1)
|
|
|
- finally:
|
|
|
- self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter = save
|
|
|
+ with switch_source_input(self.state, result):
|
|
|
+ self.state.nested_parse(result, 0, node, match_titles=1)
|
|
|
|
|
|
|
|
|
def setup(app):
|