File py314.patch of Package python-domdf-python-tools

From 4cf05de26efa976b338458befffa4e9797f7458b Mon Sep 17 00:00:00 2001
From: Maxwell G <maxwell@gtmx.me>
Date: Tue, 26 Aug 2025 16:57:51 -0500
Subject: [PATCH 1/2] tests: fix pathlib.PurePosixPath repr on py3.14

``` fish
for i in python3.{9,10,11,12,13,14}
    echo -n "$i "
    $i -c 'import pathlib; print(repr(pathlib.PurePosixPath))'
end
```

```
python3.9 <class 'pathlib.PurePosixPath'>
python3.10 <class 'pathlib.PurePosixPath'>
python3.11 <class 'pathlib.PurePosixPath'>
python3.12 <class 'pathlib.PurePosixPath'>
python3.13 <class 'pathlib._local.PurePosixPath'>
python3.14 <class 'pathlib.PurePosixPath'>
```
---
 tests/test_utils.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: domdf_python_tools-3.10.0/tests/test_utils.py
===================================================================
--- domdf_python_tools-3.10.0.orig/tests/test_utils.py
+++ domdf_python_tools-3.10.0/tests/test_utils.py
@@ -124,7 +124,7 @@ def test_printr(obj, expects, capsys):
 	assert re.match(expects, stdout[0])
 
 
-if sys.version_info >= (3, 13):
+if sys.version_info[:2] == (3, 13):
 	pure_posix_path_expected = "<class 'pathlib._local.PurePosixPath'>"
 else:
 	pure_posix_path_expected = "<class 'pathlib.PurePosixPath'>"
Index: domdf_python_tools-3.10.0/domdf_python_tools/words.py
===================================================================
--- domdf_python_tools-3.10.0.orig/domdf_python_tools/words.py
+++ domdf_python_tools-3.10.0/domdf_python_tools/words.py
@@ -171,14 +171,13 @@ def alpha_sort(
 
 	alphabet_ = list(alphabet)
 
-	try:
-		return sorted(iterable, key=lambda attr: [alphabet_.index(letter) for letter in attr], reverse=reverse)
-	except ValueError as e:
-		m = re.match(r"'(.*)' is not in list", str(e))
-		if m:
-			raise ValueError(f"The character {m.group(1)!r} was not found in the alphabet.") from None
-		else:  # pragma: no cover
-			raise e
+	def _alphabet_index(letter: str) -> int:
+		try:
+			return alphabet_.index(letter)
+		except ValueError:
+			raise ValueError(f"The character {letter!r} was not found in the alphabet.") from None
+
+	return sorted(iterable, key=lambda attr: [_alphabet_index(letter) for letter in attr], reverse=reverse)
 
 
 class Font(Dict[str, str]):
Index: domdf_python_tools-3.10.0/tests/test_paths.py
===================================================================
--- domdf_python_tools-3.10.0.orig/tests/test_paths.py
+++ domdf_python_tools-3.10.0/tests/test_paths.py
@@ -925,7 +925,7 @@ else:
 
 
 @pytest.mark.parametrize("path", _from_uri_paths)
-@pytest.mark.parametrize("left_type", [pathlib.PurePath, pathlib.Path, PathPlus])
+@pytest.mark.parametrize("left_type", [pathlib.Path, PathPlus])
 def test_pathplus_from_uri(path: str, left_type: Type):
 	assert PathPlus.from_uri(left_type(path).as_uri()).as_posix() == path
 
openSUSE Build Service is sponsored by