Сообщить об ошибке.

Класс EnumCheck модуля enum в Python

Применение ограничений, декоратор enum.verify()

Класс enum.EnumCheck содержит параметры, используемые декоратором @enum.verify() для обеспечения различных ограничений. Неудачные ограничения приводят к ошибке ValueError.

Добавлен в Python 3.11

Примечание. CONTINUOUS и NAMED_FLAGS предназначены для работы с целочисленными элементами.

UNIQUE:

Гарантирует, что каждое значение в перечислении имеет только одно имя:

from enum import Enum, verify, UNIQUE

@verify(UNIQUE)
class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3
    CRIMSON = 1

# Traceback (most recent call last):
# ...
# ValueError: aliases found in <enum 'Color'>: CRIMSON -> RED

CONTINUOUS:

Гарантирует, что между элементом с наименьшим значением и элементом с наибольшим значением нет пропущенных значений:

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

NAMED_FLAGS:

Гарантирует, что любые группы/маски флагов содержат только именованные флаги. Полезно, когда значения указываются, а не генерируются функцией enum.auto().

from enum import Flag, verify, NAMED_FLAGS

@verify(NAMED_FLAGS)
class Color(Flag):
    RED = 1
    GREEN = 2
    BLUE = 4
    WHITE = 15
    NEON = 31

# Traceback (most recent call last):
# ...
# ValueError: invalid Flag 'Color': aliases WHITE and NEON are missing 
# combined values of 0x18 [use enum.show_flag_values(value) for details]