Author ethan.furman
Recipients barry, eli.bendersky, ethan.furman, ezio.melotti, martin.panter, r.david.murray, serhiy.storchaka, veky
Date 2016-08-15.21:24:28
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1471296269.16.0.478707472864.issue23591@psf.upfronthosting.co.za>
In-reply-to
Content
The values used in Flags are an implementation detail.  The expected, and supported, use is naming the flags:

class Color(Flags):
    Red, Green, Blue

even custom names can be set using this method:

>>> class Color(enum.Flags):
...   red, green, blue
...   black = red & green & blue
... 
>>> list(Color)
[<Color.red: 1>, <Color.green: 2>, <Color.blue: 4>, <Color.black: 0>]

>>> class Color(enum.Flags):
...   red, green, blue
...   purple = red | blue
... 
>>> list(Color)
[<Color.red: 1>, <Color.green: 2>, <Color.blue: 4>, <Color.purple: 5>]
>>> Color(5)
<Color.purple: 5>
>>> Color(3)
<Color.red|green: 3>

I'll have to think about ensuring each bit is named -- it's only a (potential) problem if the values are specified manually.
History
Date User Action Args
2016-08-15 21:24:29ethan.furmansetrecipients: + ethan.furman, barry, ezio.melotti, r.david.murray, eli.bendersky, martin.panter, serhiy.storchaka, veky
2016-08-15 21:24:29ethan.furmansetmessageid: <1471296269.16.0.478707472864.issue23591@psf.upfronthosting.co.za>
2016-08-15 21:24:29ethan.furmanlinkissue23591 messages
2016-08-15 21:24:28ethan.furmancreate