[Python-Dev] Pickling of Enums

Antoine Pitrou solipsis at pitrou.net
Sat Feb 15 20:37:46 CET 2014


On Sat, 15 Feb 2014 21:01:36 +0200
Serhiy Storchaka <storchaka at gmail.com> 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.

I agree with you, they should be pickled by name. An enum is a kind of
global in this regard.

(but of course, before AF_UNIX was an enum it was pickled by value)

Regards

Antoine.




More information about the Python-Dev mailing list