Python Enum Patterns
A guide to defining type-safe, self-documenting constants using Python's Enum class and its variants.
Usage
Ask about Enum types, StrEnum, IntEnum, Flag, or enum patterns in APIs and databases.
Examples
- "Create a StrEnum for API status values"
- "How do I use Flag for bitwise permission enums?"
- "Serialize enums to JSON in FastAPI responses"
Guidelines
- Use StrEnum for string-based constants (Python 3.11+)
- Use IntEnum when integer compatibility is needed
- Use Flag for combinable bitwise options
- Add custom methods to enums for behavior
- Use auto() for auto-generated values when the value doesn't matter