Base python library does not expose a public interface to decompose a Flag enumeration into its activated flags. Provide a property that does this - may wrap enum internal code that does this so long as CI tests are sufficient to catch breaking changes in future.
/Users/bckohan/Development/enum-properties/enum_properties/init.py:370: DeprecationWarning: In 3.13 classes created inside an enum will not become a member. Use the member decorator to keep the current behavior.
There are some deficiencies in how properties are stored and accessed on the member values. This access should be changed to direct attribute access instead of going through a member to value dictionary lookup. Will have to find a way to assign properties with None values to unlisted flag values.
The typing in this package is extremely dynamic so its unclear if the current state of static type checking in python is worth the trouble - but once it is it should be added.
Symmetric fields that sometimes have none values should be able to switch off symmetrical mapping to None. Current behavior is to map the values if match on none, but a more reasonable default might be to turn off none mapping and require users to turn it back on.
For instance:
classMyEnum(EnumProperties, s('label', match_none=False)):
VAL1=1, 'label'VAL2=2, NoneMyEnum(None) # raises value error