Skip to content

Conversation

gotmax23
Copy link

See the individual commit messages for more information about each change. This PR was created during the process of bootstrapping Python 3.14 for Fedora Linux.

``` 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'>
```
As of python/cpython#121395, the format of the
list.index exception has changed and parsing it like this no longer
works. Relying on implementation details like this is always risky, so
this solution should be more future-proof.
@MeggyCal
Copy link

MeggyCal commented Sep 15, 2025

Hi, your patch didn't fix my Python 3.14 build, it was also necessary to add one more fix:

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)
[email protected]("left_type", [pathlib.PurePath, pathlib.Path, PathPlus])
[email protected]("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

This is not a review, I am just working on Python 3.14 integration in openSUSE and discovered this issue as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants