On Sat, 29 May 2021, 7:27 am Ethan Furman, <et...@stoneleaf.us> wrote:
> 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-le...@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/OM5M774MP5QPLFXZ7OVGBPR7ZFB6X35A/ > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@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/C6ZYW7PFTPUETPCKLD57O7SWV6GK4M63/ Code of Conduct: http://python.org/psf/codeofconduct/