[Python-Dev] Re: name for new Enum decorator

2021年5月29日 18:38:38 -0700

On 2021年5月29日, 7:27 am Ethan Furman, <[email protected]> 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 -- [email protected]
> To unsubscribe send an email to [email protected]
> https://mail.python.org/mailman3/lists/python-dev.python.org/
> Message archived at
> https://mail.python.org/archives/list/[email protected]/message/OM5M774MP5QPLFXZ7OVGBPR7ZFB6X35A/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-Dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/C6ZYW7PFTPUETPCKLD57O7SWV6GK4M63/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to