Python Enum duplicate values: Preventing aliases with @unique

Python Enum duplicate values: Preventing aliases with @unique

Normally, Python doesn’t enforce uniqueness on Enum values:

from enum import Enum, unique
class Stuff(Enum):
  A = 1
  B = 1
Stuff.A  # <Stuff.A: 1>
Stuff.B  # <Stuff.A: 1>  <- notice this!

The @unique decorator enforces:

@unique
class Stuff(Enum):
  A = 1
  B = 1  # error!