[Python-ideas] IntFlags

Ethan Furman ethan at stoneleaf.us
Tue Mar 3 17:40:11 CET 2015


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.

--
~Ethan~

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150303/0fe9c732/attachment.sig>


More information about the Python-ideas mailing list