[Python-ideas] IntFlags

Joao S. O. Bueno jsbueno at python.org.br
Tue Mar 3 17:44:15 CET 2015


On 3 March 2015 at 13:40, Ethan Furman <ethan at stoneleaf.us> wrote:
> On 03/03/2015 07:52 AM, Serhiy Storchaka wrote:
>>
>> Enum and IntEnum classes allow constants to have nice str() and repr() representations.
>>
>> But when integer constants are flags that should be ORed, IntEnum doesn't help, because the result of bitwise OR of two
>> IntEnum instances is int, and this value can't be represented as IntEnum.
>>
>> We need new type IntFlags. It is like IntEnum, but has differences:
>>
>> 1. The value of an instance should be not limited to the set of predefined constants. It can be a combination of
>> predefined constants or even arbitrary integer.
>>
>> 2. The result of "|", "&" and "~" operators for IntFlags arguments should be an instance of the same IntFlags subclass.
>>
>> 3. It should have nice str() and repr().
>
> This was in my original Enum code, but stripped out as not being needed at the time.
>
> If there is sufficient interest (and use-cases) I can add it back in.

I think that would be nice.
The problem is that it would be too late now for changing the behavior
of "IntEnum" itself, right?

>
> --
> ~Ethan~
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/


More information about the Python-ideas mailing list