ClassEnumDeclaration
Create a Python enum using the class-based syntax.
This generates enums using the class Name(Enum): syntax with member definitions
inside the class body. Supports various member value styles including auto-generated
values, explicit values, and custom base types.
import { ClassEnumDeclaration } from "@alloy-js/python";
<ClassEnumDeclaration auto baseType={"Enum" | "IntEnum" | "StrEnum" | "Flag" | "IntFlag"} doc={Children} members={Array<EnumMemberProps>} />import { ClassEnumDeclaration } from "@alloy-js/python/stc";
ClassEnumDeclaration({ auto: boolean, baseType: "Enum" | "IntEnum" | "StrEnum" | "Flag" | "IntFlag", doc: Children, members: Array<EnumMemberProps>,}).children(children)| auto | optionalbooleanIndicates that the enum members should be auto-generated. |
| baseType | optional”Enum” | “IntEnum” | “StrEnum” | “Flag” | “IntFlag”The base type of the enum. One of: ‘Enum’, ‘IntEnum’, ‘StrEnum’, ‘Flag’, ‘IntFlag’. Defaults to ‘Enum’. |
| doc | optionalChildrenOptional docstring for the enum. |
| members | optionalArray<EnumMemberProps>Members of the enum as an array of objects. |
Examples
Section titled “Examples”<ClassEnumDeclaration name="Direction" members={[ { name: "NORTH" }, { name: "SOUTH" }, { name: "EAST" }, { name: "WEST" } ]}/>renders to:
class Direction(Enum): NORTH = "NORTH" SOUTH = "SOUTH" EAST = "EAST" WEST = "WEST"With explicit values:
<ClassEnumDeclaration name="Status" members={[ { name: "PENDING", value: 1 }, { name: "ACTIVE", value: 2 }, { name: "INACTIVE", value: 3 } ]}/>renders to:
class Status(Enum): PENDING = 1 ACTIVE = 2 INACTIVE = 3With auto() values:
<ClassEnumDeclaration name="Color" style="auto" members={[ { name: "RED" }, { name: "GREEN" }, { name: "BLUE" } ]}/>renders to:
class Color(Enum): RED = auto() GREEN = auto() BLUE = auto()