]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.14] GH-133789: Fix unpickling of pathlib objects pickled in Python 3.13 (GH-133831...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 17 Oct 2025 22:23:01 +0000 (00:23 +0200)
committerGitHub <noreply@github.com>
Fri, 17 Oct 2025 22:23:01 +0000 (22:23 +0000)
commitf59236b746b8cab8eb06a1c9fcd6c8ad9b6a93d1
treeb7d98746431d36c2180b8ed5a5d213220e5f6ec3
parente07b78c01a57c5921614388e287c584d19a3e40c
[3.14] GH-133789: Fix unpickling of pathlib objects pickled in Python 3.13 (GH-133831) (#140276)

GH-133789: Fix unpickling of pathlib objects pickled in Python 3.13 (GH-133831)

In Python 3.13 (but not 3.12 or 3.14), pathlib classes are defined in
`pathlib._local` rather than `pathlib`. In hindsight this was a mistake,
but it was difficult to predict how the abstract/local split would pan out.

In this patch we re-introduce `pathlib._local` as a stub module that
re-exports the classes from `pathlib`. This allows path objects pickled in
3.13 to be unpicked in 3.14+
(cherry picked from commit f4e51f253ad6c27583438f6182c33cf368bfa45f)

Co-authored-by: Barney Gale <barney.gale@gmail.com>
Lib/pathlib/_local.py [new file with mode: 0644]
Lib/test/test_pathlib/test_pathlib.py
Misc/NEWS.d/next/Library/2025-05-10-15-10-54.gh-issue-133789.I-ZlUX.rst [new file with mode: 0644]