Enums and Constants
May 30, 2026 | 5 min read
Enum for State Machines
from enum import Enum, auto
class Status(Enum):
PENDING = auto()
RUNNING = auto()
COMPLETED = auto()
FAILED = auto()
def transition(current: Status, event: str) -> Status:
rules = {
Status.PENDING: {'start': Status.RUNNING},
Status.RUNNING: {'finish': Status.COMPLETED, 'error': Status.FAILED},
}
return rules.get(current, {}).get(event, current)
IntEnum
from enum import IntEnum
class Priority(IntEnum):
LOW = 1
MEDIUM = 2
HIGH = 3
def filter_by_priority(items: list[tuple[int, str]], min_level: Priority) -> list[str]:
result = []
for prio, name in items:
if prio >= min_level:
result.append(name)
return result