docs: kernel_abi.py: make it compatible with Sphinx 1.7+

The same way kerneldoc.py needed changes to work with newer
Sphinx, this script needs the same changes.

While here, reorganize the include order to match kerneldoc.py.

Acked-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/f2b25caef5db7738629773a03463908d3b39b83a.1604042072.git.mchehab+huawei@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Mauro Carvalho Chehab
2020-10-30 08:40:33 +01:00
committed by Greg Kroah-Hartman
parent 823830d406
commit c830fa9a4d

View File

@@ -33,18 +33,27 @@ u"""
""" """
import codecs import codecs
import sys
import os import os
from os import path
import subprocess import subprocess
import sys
from sphinx.ext.autodoc import AutodocReporter from os import path
from docutils import nodes from docutils import nodes, statemachine
from docutils.parsers.rst import Directive, directives
from docutils.statemachine import ViewList from docutils.statemachine import ViewList
from docutils.parsers.rst import directives, Directive
from docutils.utils.error_reporting import ErrorString from docutils.utils.error_reporting import ErrorString
#
# AutodocReporter is only good up to Sphinx 1.7
#
import sphinx
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
__version__ = '1.0' __version__ = '1.0'
@@ -142,11 +151,17 @@ class KernelCmd(Directive):
content.append(l, fname, c) content.append(l, fname, c)
buf = self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter buf = self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter
self.state.memo.title_styles = []
self.state.memo.section_level = 0 if Use_SSI:
self.state.memo.reporter = AutodocReporter(content, self.state.memo.reporter) with switch_source_input(self.state, content):
try: self.state.nested_parse(content, 0, node, match_titles=1)
self.state.nested_parse(content, 0, node, match_titles=1) else:
finally: self.state.memo.title_styles = []
self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter = buf self.state.memo.section_level = 0
self.state.memo.reporter = AutodocReporter(content, self.state.memo.reporter)
try:
self.state.nested_parse(content, 0, node, match_titles=1)
finally:
self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter = buf
return node.children return node.children