On Sat, 29 May 2021, 7:27 am Ethan Furman,
On 5/28/21 12:43 AM, Petr Viktorin wrote:
On 28. 05. 21 5:24, Ethan Furman wrote:
class FlagWithMasks(IntFlag): DEFAULT = 0x0
FIRST_MASK = 0xF FIRST_ROUND = 0x0 FIRST_CEIL = 0x1 FIRST_TRUNC = 0x2
SECOND_MASK = 0xF0 SECOND_RECALC = 0x00 SECOND_NO_RECALC = 0x10
THIRD_MASK = 0xF00 THIRD_DISCARD = 0x000 THIRD_KEEP = 0x100
Here we have three flags (FIRST_MASK, SECOND_MASK, THIRD_MASK) that
are aliasing values
that don't exist, but it seems intentional and not an error.
Are you looking for a decorator for the whole Enum, or a way to mark individual *values* as masks?
The decorator is for whole enum. The issue is not that some values are masks, but whether the absence of named bits covered by the mask is an error.
If you were prepared to incur a deprecation period, then you could make the decorator "@allow_masks" and flip the default behaviour to emit Deprecation Warning for masks, eventually upgrading it to Value Error. Otherwise, maybe something like "@no_masks"? Cheers, Nick.
-- ~Ethan~ _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/OM5M774M... Code of Conduct: http://python.org/psf/codeofconduct/