[Python-Dev] PEP-435 reference implementation (original) (raw)

Ethan Furman ethan at stoneleaf.us
Wed May 1 01:49:52 CEST 2013


On 04/30/2013 03:34 PM, Ethan Furman wrote:

On 04/30/2013 03:24 PM, Glenn Linderman wrote:

On 4/30/2013 1:12 PM, Ethan Furman wrote:

Greetings,

Eli asked me to put the reference implementation here for review. It is available at https://bitbucket.org/stoneleaf/aenum in ref435.py and testref435.py Thanks for the code reference. Tests ran fine here on Python 3.3 If I alter testref435.py at the end, as follows, I get an error: nothing matches 'BDFL' Can someone explain why? if name == 'main': class AnotherName( Name ): 'just uses prior names' print(AnotherName['BDFL']) Because Guido said no subclassing. At this point, if you try to subclass all your getting is the same type. So AnotherName is a string Enumeration.

It wouldn't be hard to check for instances of the Enum in question, and if there are some to raise an error instead. That way:

--> class StrEnum(str, Enum): ... 'str-based enumerations'

--> class Names(StrEnum): # this works, as StrEnum has no instances ... BDFL = 'GvR'

--> class MoreNames(Names): # this fails, as Names has instances

Thoughts?

-- Ethan



More information about the Python-Dev mailing list