Python 3.11+enumterm
enum.EnumCheck
checks
An enumeration of checks for verify(): UNIQUE, CONTINUOUS, NAMED_FLAGS (3.11+).
Syntax
enum.EnumCheck
EnumCheck does nothing on its own: its members are arguments to the verify() decorator, as in @verify(UNIQUE, CONTINUOUS). The checks run once, while the class is being built, so a violation blows up at import time rather than at first use. UNIQUE bans aliases, CONTINUOUS bans gaps in numeric values, and NAMED_FLAGS demands that composite flag values be made only of bits that already have names.
Examples
import enum
print(enum.EnumCheck.UNIQUE.name) # → UNIQUE
print(sorted(m.name for m in enum.EnumCheck)) # → ['CONTINUOUS', 'NAMED_FLAGS', 'UNIQUE']
print(isinstance(enum.EnumCheck.UNIQUE, str)) # → True
Nums = enum.Enum('Nums', {'A': 1, 'B': 2})
print(enum.verify(enum.EnumCheck.CONTINUOUS)(Nums) is Nums) # → True
Gap = enum.Enum('Gap', {'A': 1, 'B': 3})
enum.verify(enum.EnumCheck.CONTINUOUS)(Gap) # → ValueError
See also
Open in the full glossarydocs.python.orgReport an inaccuracy