-
-
Notifications
You must be signed in to change notification settings - Fork 33.2k
GH-133789: Fix unpickling of pathlib objects pickled in Python 3.13 #133831
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…3.13 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+
|
would this also add support for 3.12 to be able to unpickle path objects pickled in 3.13? |
I'm afraid not. Generally we don't support that sort of forward-compatibility with pickling |
|
Thanks @barneygale for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14. |
…3.13 (pythonGH-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 f4e51f2) Co-authored-by: Barney Gale <barney.gale@gmail.com>
|
GH-140276 is a backport of this pull request to the 3.14 branch. |
… 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 f4e51f2) Co-authored-by: Barney Gale <barney.gale@gmail.com>
|
In Python 3.13 (but not 3.12 or 3.14), pathlib classes are defined in
pathlib._localrather thanpathlib. 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._localas a stub module that re-exports the classes frompathlib. This allows path objects pickled in 3.13 to be unpicked in 3.14+