Docs: use Node.findall to avoid a deprecation warning (GH-99403)

(cherry picked from commit 1e9dfdacef)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
This commit is contained in:
Miss Islington (bot) 2023-04-08 01:24:27 -07:00 committed by GitHub
parent b4f3318207
commit 31bec9198b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -20,6 +20,7 @@
""" """
from os import path from os import path
import docutils
from docutils import nodes from docutils import nodes
from docutils.parsers.rst import directives from docutils.parsers.rst import directives
from docutils.parsers.rst import Directive from docutils.parsers.rst import Directive
@ -41,6 +42,16 @@ REST_ROLE_MAP = {
} }
# Monkeypatch nodes.Node.findall for forwards compatability
# This patch can be dropped when the minimum Sphinx version is 4.4.0
# or the minimum Docutils version is 0.18.1.
if docutils.__version_info__ < (0, 18, 1):
def findall(self, *args, **kwargs):
return iter(self.traverse(*args, **kwargs))
nodes.Node.findall = findall
class RCEntry: class RCEntry:
def __init__(self, name): def __init__(self, name):
self.name = name self.name = name
@ -87,7 +98,7 @@ class Annotations:
self.stable_abi_data[name] = record self.stable_abi_data[name] = record
def add_annotations(self, app, doctree): def add_annotations(self, app, doctree):
for node in doctree.traverse(addnodes.desc_content): for node in doctree.findall(addnodes.desc_content):
par = node.parent par = node.parent
if par['domain'] != 'c': if par['domain'] != 'c':
continue continue