Skip to content

Commit 9a6ed16

Browse files
committed
fix deprecation warnings
1 parent bcf4d24 commit 9a6ed16

6 files changed

Lines changed: 21 additions & 6 deletions

File tree

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ repos:
5050
- id: mypy
5151
args: [--config-file=pyproject.toml]
5252
additional_dependencies:
53-
- sphinx~=4.1
53+
- sphinx~=5.0
5454
- markdown-it-py>=1.0.0,<3.0.0
5555
- mdit-py-plugins~=0.3.0
5656
files: >

myst_parser/_compat.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
"""Helpers for cross compatibility across dependency versions."""
2+
from typing import Callable, Iterable
3+
4+
from docutils.nodes import Element
5+
6+
7+
def findall(node: Element) -> Callable[..., Iterable[Element]]:
8+
"""Iterate through"""
9+
# findall replaces traverse in docutils v0.18
10+
# note a difference is that findall is an iterator
11+
return getattr(node, "findall", node.traverse)

myst_parser/mdit_to_docutils/base.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
from markdown_it.token import Token
3333
from markdown_it.tree import SyntaxTreeNode
3434

35+
from myst_parser._compat import findall
3536
from myst_parser.config.main import MdParserConfig
3637
from myst_parser.mocking import (
3738
MockIncludeDirective,
@@ -41,7 +42,7 @@
4142
MockState,
4243
MockStateMachine,
4344
)
44-
from ..parsers.directives import DirectiveParsingError, parse_directive_text
45+
from myst_parser.parsers.directives import DirectiveParsingError, parse_directive_text
4546
from .html_to_nodes import html_to_nodes
4647
from .utils import is_external_url
4748

@@ -260,7 +261,7 @@ def _render_finalise(self) -> None:
260261
# those from the initial markdown parse
261262
# instead we gather them from a walk of the created document
262263
foot_refs = OrderedDict()
263-
for refnode in self.document.traverse(nodes.footnote_reference):
264+
for refnode in findall(self.document)(nodes.footnote_reference):
264265
if refnode["refname"] not in foot_refs:
265266
foot_refs[refnode["refname"]] = True
266267

myst_parser/sphinx_ext/myst_refs.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
from sphinx.util import docname_join, logging
1717
from sphinx.util.nodes import clean_astext, make_refnode
1818

19+
from myst_parser._compat import findall
20+
1921
try:
2022
from sphinx.errors import NoUri
2123
except ImportError:
@@ -35,7 +37,7 @@ class MystReferenceResolver(ReferencesResolver):
3537

3638
def run(self, **kwargs: Any) -> None:
3739
self.document: document
38-
for node in self.document.traverse(addnodes.pending_xref):
40+
for node in findall(self.document)(addnodes.pending_xref):
3941
if node["reftype"] != "myst":
4042
continue
4143

tests/test_sphinx/conftest.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ def test_basic(app, status, warning, get_sphinx_app_output):
3939
from bs4 import BeautifulSoup
4040
from sphinx.testing.path import path
4141

42+
from myst_parser._compat import findall
43+
4244
SOURCE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "sourcedirs"))
4345

4446

@@ -109,7 +111,7 @@ def read(
109111
extension = regress_ext
110112

111113
# convert absolute filenames
112-
for node in doctree.traverse(
114+
for node in findall(doctree)(
113115
lambda n: "source" in n and not isinstance(n, str)
114116
):
115117
node["source"] = pathlib.Path(node["source"]).name

tox.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ addopts = --ignore=setup.py
5757
markers =
5858
sphinx: set parameters for the sphinx `app` fixture (see ipypublish/sphinx/tests/conftest.py)
5959
filterwarnings =
60-
ignore::DeprecationWarning:sphinx.jinja2glue.*
6160

6261
[flake8]
6362
max-line-length = 100

0 commit comments

Comments
 (0)