summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/sphinx/files/sphinx-7.3.7-opt-defusedxml.patch')
-rw-r--r--dev-python/sphinx/files/sphinx-7.3.7-opt-defusedxml.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/dev-python/sphinx/files/sphinx-7.3.7-opt-defusedxml.patch b/dev-python/sphinx/files/sphinx-7.3.7-opt-defusedxml.patch
new file mode 100644
index 000000000000..cb70e2cf89fc
--- /dev/null
+++ b/dev-python/sphinx/files/sphinx-7.3.7-opt-defusedxml.patch
@@ -0,0 +1,34 @@
+From ce86026f3b667949ef39f7fdab9a40941d99c5ca Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sat, 11 May 2024 18:31:02 +0200
+Subject: [PATCH] DEPS: Lazy import `defusedxml` only when necessary (#12362)
+
+The `defusedxml` dependency was added to `sphinx.testing` in sphinx 7.3,
+but it is not part of the core sphinx dependencies, and not strictly necessary for the running of the pytest plugin.
+This commit moves the import into the only function which uses it,
+so that the pytest plugins can be used again without this dependency.
+---
+ sphinx/testing/util.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/sphinx/testing/util.py b/sphinx/testing/util.py
+index d1de8ea2b7..b2df709eea 100644
+--- a/sphinx/testing/util.py
++++ b/sphinx/testing/util.py
+@@ -11,7 +11,6 @@
+ from types import MappingProxyType
+ from typing import TYPE_CHECKING
+
+-from defusedxml.ElementTree import parse as xml_parse
+ from docutils import nodes
+ from docutils.parsers.rst import directives, roles
+
+@@ -73,6 +72,8 @@ def assert_node(node: Node, cls: Any = None, xpath: str = "", **kwargs: Any) ->
+ # keep this to restrict the API usage and to have a correct return type
+ def etree_parse(path: str | os.PathLike[str]) -> ElementTree:
+ """Parse a file into a (safe) XML element tree."""
++ from defusedxml.ElementTree import parse as xml_parse
++
+ return xml_parse(path)
+
+