Skip to content

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

barneygale
Copy link
Contributor

@barneygale barneygale commented May 10, 2025

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+

…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+
@atravitz
Copy link

would this also add support for 3.12 to be able to unpickle path objects pickled in 3.13?

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

Successfully merging this pull request may close these issues.

2 participants