Flag add __all__/__none__ and eliminate _decompose() #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proof of concept:
__all__
class property, which is the composed flag value of all single bits__none__
class property, which is the flag value of no enabled bits_decompose()
method by using the above attributes and efficient walking of enabled bitschanged behavior:
(e.g. given
{RO = 0, WO = 1, RW = 2, AC = 3}
,~RO
isRW|WO
)broken behavior:
(e.g.
{B=3, C=4}
)IntFlag
invert, due to its one-to-many mapping to negative values