I'm not sure exactly how to phrase this inquiry, so please bear with me.

What exactly does backwards compatibility mean as far as pickle goes?  We have 
the various protocols, we have the
contents of pickle files created at those protocols, and we have different 
versions of Python.

Should a pickle file created in Python 3.4 with protocol 3 and the contents of 
socket.AF_INET be unpicklable with a
Python 3.3 system?  Because currently it cannot be as socket.AF_INET became an 
IntEnum in 3.4.

I'm thinking the answer is yes, it should be.

So how do we fix it?  There are a couple different options:

  - modify IntEnum pickle methods to return the name only

  - modify IntEnum pickle methods to pickle just like the int they represent

The first option has the advantage that in 3.4 and above, you'll get back the 
IntEnum version.

The second option has the advantage that the actual pickle contents are the 
same [1] as in previous versions.

So, the final question:  Do the contents of a pickle file at a certain protocol 
have to be the some between versions, or
is it enough if unpickling them returns the correct object?

--
~Ethan~

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to