diff options
| author | Michał Górny <mgorny@gentoo.org> | 2024-05-11 21:05:25 +0200 |
|---|---|---|
| committer | Michał Górny <mgorny@gentoo.org> | 2024-05-11 21:11:01 +0200 |
| commit | 01f1140e16b69956b2d6171e0a503c043296fb14 (patch) | |
| tree | 6585866e750b01e010f6722798ea3fca971152f8 /dev-python/sphinx | |
| parent | bb9ee5466a5a229a8005e200e7f22939a7e31402 (diff) | |
| download | gentoo-01f1140e16b69956b2d6171e0a503c043296fb14.tar.gz gentoo-01f1140e16b69956b2d6171e0a503c043296fb14.tar.bz2 gentoo-01f1140e16b69956b2d6171e0a503c043296fb14.zip | |
dev-python/sphinx: Make dev-python/defusedxml import optional
Closes: https://bugs.gentoo.org/931580
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/sphinx')
| -rw-r--r-- | dev-python/sphinx/files/sphinx-7.3.7-opt-defusedxml.patch | 34 | ||||
| -rw-r--r-- | dev-python/sphinx/sphinx-7.3.7-r2.ebuild (renamed from dev-python/sphinx/sphinx-7.3.7-r1.ebuild) | 7 |
2 files changed, 36 insertions, 5 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) + + diff --git a/dev-python/sphinx/sphinx-7.3.7-r1.ebuild b/dev-python/sphinx/sphinx-7.3.7-r2.ebuild index 4151e90e6efc..99ff0e4980f7 100644 --- a/dev-python/sphinx/sphinx-7.3.7-r1.ebuild +++ b/dev-python/sphinx/sphinx-7.3.7-r2.ebuild @@ -52,11 +52,6 @@ RDEPEND=" ) !dev-python/namespace-sphinxcontrib " -# added temporarily because of unconditional import in sphinx.testing.util -# until we figure out how to deal with it better -RDEPEND+=" - dev-python/defusedxml[${PYTHON_USEDEP}] -" BDEPEND=" doc? ( dev-python/sphinxcontrib-websupport[${PYTHON_USEDEP}] @@ -77,6 +72,8 @@ BDEPEND=" PATCHES=( "${FILESDIR}/sphinx-3.2.1-doc-link.patch" "${FILESDIR}/sphinx-4.3.2-doc-link.patch" + # https://github.com/sphinx-doc/sphinx/pull/12362 + "${FILESDIR}/${P}-opt-defusedxml.patch" ) distutils_enable_tests pytest |
