[Python-Dev] enum discussion: can someone please summarize open issues?

Steven D'Aprano steve at pearwood.info
Mon Apr 29 01:37:44 CEST 2013


On 29/04/13 06:02, Guido van Rossum wrote:
> My opinions added
>
> On Sun, Apr 28, 2013 at 12:32 PM, Ethan Furman <ethan at stoneleaf.us> wrote:


>> Definite Issues:
>>
>>    - should enum items be of the type of the Enum class? (i.e. type(SPRING)
>> is Seasons)
>
> IMO Yes.

+1


>>    - should an enum item be selectable via __call__ instead of __getitem__
>> (i.e. Seasons(3) is AUTUMN)
>
> No opinion.

Does anyone know why this is even an issue? Is this pure bike-shedding over the API, or are there
technical reasons for choosing one over the other?


>>    - should days_in_year be enumerated?
>
> Yes. (If you don't want it to be, and it's not a method/descriptor,
> move it out of the class.)

+1, but see below.


>>    - should avg_temp be enumerated?
>
> IMO No.
>
>>    - for the above two, how should they be included/excluded?
>
> IMO Everything should be enumerated except
> (a) things with a __get__() method (i.e. descriptors)
> (b) __dunder__ names

+1 on excluding dunder names. +0 on excluding things with __get__.

I have also suggested that that the enum package provide a decorator
which can be used to explicitly flag values to *not* be turned into
enum values. See here:

http://mail.python.org/pipermail/python-dev/2013-April/125641.html

Even if the Enum class doesn't support this feature, I ask that it be
written in such a way that a subclass could add it (i.e. please expose
a public method for deciding what to exclude).




-- 
Steven


More information about the Python-Dev mailing list