On Wed, 29 Jun 2016 at 10:41 Ethan Furman <ethan@stoneleaf.us> wrote:
There is a several-month-old request to add aenum's [1] AutoNumberEnum
to the stdlib [2].

The requester and two of the three developers of Enum are in favor (the
third hasn't chimed in yet).

This new addition would enable the following:

   from Enum import AutoNumberEnum

   class Color(AutoNumberEnum):
       # auto-number magic is on
       Red
       Green
       Blue
       Cyan
       # magic turns off when non-enum is defined

       def is_primary(self):
           # typos in methods, etc, will raise
           return self in (self.Red, self.Grene, self.Blue)

       # typos after the initial definition stanza will raise
       BlueGreen = Blue + Grene

There is, of course, the risk of typos during the initial member
definition stanza, but since this magic only happens when the user
explicitly asks for it (AutoNumberEnum), I think it is acceptable.

The `start` parameter is still available, and assigning a number is
supported (subsequent numbers will (re)start from the assigned number).

Thoughts?  Opinions?  Flames?

Is it going to subclass Enum or IntEnum? Personally I would be quite happy to never have to specify a value for enums ever again, but only if they subclass Enum (since IntEnum is for compatibility with C stuff where a specific value is needed I don't think users need to mess that up by having the automatic numbering not work how they would expect).