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 коммит произвёл Greg Kroah-Hartman
Родитель 823830d406
Коммит c830fa9a4d
1 изменённых файлов: 27 добавлений и 12 удалений

Просмотреть файл

@ -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