I'm confused. Hasn't this all been decided by the PEP long ago?
On Tue, Feb 18, 2014 at 9:11 AM, Ethan Furman <[email protected]> wrote: > On 02/15/2014 11:01 AM, Serhiy Storchaka wrote: > >> How Enum items should be pickled, by value or by name? >> >> I think that Enum will be used to collect system-depending constants, so >> the value of AddressFamily.AF_UNIX can be 1 on >> one platform and 2 on other. If pickle enums by value, then pickled >> AddressFamily.AF_INET on on platform can be >> unpickled as AddressFamily.AF_UNIX on other platform. This looks weird >> and contrary to the nature of enums. >> > > There is one more wrinkle to pickling by name (it's actually still there > in pickle by value, just more obvious in pickle by name) -- aliases. It > seems to me the most common scenario to having a name represent different > values on different systems is when on system A they are different, but on > system B they are the same: > > System A: > > class SystemEnum(Enum): > value1 = 1 > value2 = 2 > > System B: > > class SystemEnum(Enum): > value1 = 1 > value2 = 1 > > If you're on system B there is no way to pickle (by name or value) value2 > such that we get value2 back on system A. The only way I know of to make > that work would be to dispense with identity comparison, use the normal == > comparison, and have aliases actually be separate objects (we could still > use singletons, but it would be one per name instead of the current one per > value, and it would also be an implementation detail). > > Thoughts? > > -- > ~Ethan~ > > _______________________________________________ > Python-Dev mailing list > [email protected] > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: https://mail.python.org/mailman/options/python-dev/ > guido%40python.org > -- --Guido van Rossum (python.org/~guido)
_______________________________________________ Python-Dev mailing list [email protected] https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
