5.4. Enum Verify — Python
@uniqueenum.verify(UNIQUE)enum.verify(CONTINUOUS)enum.verify(NAMED_FLAGS)
5.4.1. @unique
Ensure that there are no duplicate values
from enum import unique@unique
>>> from enum import Enum, unique >>> >>> >>> @unique ... class Color(Enum): ... RED = 1 ... GREEN = 2 ... BLUE = 3 ... BLACK = 3 ... Traceback (most recent call last): ValueError: duplicate values found in <enum 'Color'>: BLACK -> BLUE
5.4.2. @verify(UNIQUE)
Ensure that each value has only one name
from enum import verify, UNIQUE@verify(UNIQUE)
>>> from enum import Enum, verify, UNIQUE >>> >>> >>> @verify(UNIQUE) ... class Color(Enum): ... RED = 1 ... GREEN = 2 ... BLUE = 3 ... BLACK = 3 ... Traceback (most recent call last): ValueError: aliases found in <enum 'Color'>: BLACK -> BLUE
5.4.3. @verify(CONTINUOUS)
Ensure that there are no missing values between lowest and highest
Designed to work with integer-valued members
>>> from enum import Enum, verify, CONTINUOUS >>> >>> >>> @verify(CONTINUOUS) ... class Color(Enum): ... RED = 1 ... GREEN = 2 ... BLUE = 5 ... Traceback (most recent call last): ValueError: invalid enum 'Color': missing values 3, 4
5.4.4. @verify(NAMED_FLAGS)
Ensure that any flag groups/masks contain only named flags
Designed to work with integer-valued members
>>> from enum import Flag, verify, NAMED_FLAGS >>> >>> >>> @verify(NAMED_FLAGS) ... class Color(Flag): ... RED = 1 ... GREEN = 2 ... BLUE = 4 ... BLACK = 8 ... WHITE = 17 ... Traceback (most recent call last): ValueError: invalid Flag 'Color': alias WHITE is missing value 0x10 [use enum.show_flag_values(value) for details]