[Python-ideas] Cross-platform pickling of Path objects
Antony Lee
antony.lee at berkeley.edu
Fri Jul 15 20:51:39 EDT 2016
Hi all,
I have opened http://bugs.python.org/issue27175 a month and a half ago but
didn't get any feedback there, so I'll copy-paste it here for comments:
Currently, pickling Path objects lead to issues when working across
platforms: Paths (and, thus, objects that contain Paths) created on a POSIX
platform (PosixPaths) cannot be unpickled on Windows and vice versa. There
are a few possibilities around this issue.
- Don't do anything about it, you should use PurePaths if you care about
cross-platform compatibility: this would be pretty awkward, as any call to
the Path API would require converting back the PurePath to a Path first.
- Silently convert Paths to PurePaths during pickling (a solution that
seems to have been adopted by
http://docs.menpo.org/en/stable/api/menpo/io/export_pickle.html for
example): it would be better if Paths at least roundtripped correctly
within a single platform.
- Convert Paths to PurePaths at unpickling time, only if the platform is
different (and possibly with a warning): this is the least bad solution I
came up with so far. Note that calls to the Path API on a "converted"
PurePath object would be invalid anyways as the PurePath (being of a
different platform) cannot be representing a valid path.
Thoughts?
Antony
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20160715/16a800ee/attachment.html>
More information about the Python-ideas
mailing list