--- Doc/tools/extensions/c_annotations.py | 6 +++++- Doc/tools/extensions/glossary_search.py | 12 ++++++++++-- Doc/tools/extensions/pyspecific.py | 13 ++++++++++--- 3 files changed, 25 insertions(+), 6 deletions(-) --- a/Doc/tools/extensions/c_annotations.py +++ b/Doc/tools/extensions/c_annotations.py @@ -84,7 +84,11 @@ class Annotations: self.stable_abi_data[name] = record def add_annotations(self, app, doctree): - for node in doctree.findall(addnodes.desc_content): + try: + findall = doctree.findall + except AttributeError: + findall = doctree.traverse + for node in findall(addnodes.desc_content): par = node.parent if par['domain'] != 'c': continue --- a/Doc/tools/extensions/glossary_search.py +++ b/Doc/tools/extensions/glossary_search.py @@ -25,8 +25,16 @@ def process_glossary_nodes(app, doctree, terms = {} - for node in doctree.findall(glossary): - for glossary_item in node.findall(definition_list_item): + try: + findall = doctree.findall + except AttributeError: + findall = doctree.traverse + for node in findall(glossary): + try: + node_findall = node.findall + except AttributeError: + node_findall = node.traverse + for glossary_item in node_findall(definition_list_item): term = glossary_item[0].astext().lower() definition = glossary_item[1] --- a/Doc/tools/extensions/pyspecific.py +++ b/Doc/tools/extensions/pyspecific.py @@ -27,7 +27,10 @@ from sphinx.locale import _ as sphinx_ge from sphinx.util import logging from sphinx.util.docutils import SphinxDirective from sphinx.writers.text import TextWriter, TextTranslator -from sphinx.util.display import status_iterator +try: + from sphinx.util.display import status_iterator +except ModuleNotFoundError: + from sphinx.util import status_iterator ISSUE_URI = 'https://bugs.python.org/issue?@action=redirect&bpo=%s' @@ -604,7 +607,11 @@ def parse_monitoring_event(env, sig, sig def process_audit_events(app, doctree, fromdocname): - for node in doctree.findall(audit_event_list): + try: + findall = doctree.findall + except AttributeError: + findall = doctree.traverse + for node in findall(audit_event_list): break else: return @@ -663,7 +670,7 @@ def process_audit_events(app, doctree, f body += row - for node in doctree.findall(audit_event_list): + for node in findall(audit_event_list): node.replace_self(table)