FunctionalEnumDeclaration
Create a Python enum using the functional syntax.
This generates enums using the Enum('Name', [...])
or Enum('Name', {...})
syntax.
The format depends on whether enum members have explicit values:
- Members without values:
Enum('Direction', ['NORTH', 'SOUTH', 'EAST', 'WEST'])
- Members with values:
Enum('Direction', {'NORTH': 1, 'SOUTH': 2, 'EAST': 3, 'WEST': 4})
import { FunctionalEnumDeclaration } from "@alloy-js/python";
<FunctionalEnumDeclaration baseType={"Enum" | "IntEnum" | "StrEnum" | "Flag" | "IntFlag"} doc={Children} doc={Children} members={Array<{ name: string; value?: Children; jsValue?: string | number; doc?: string; }>} name="string" refkey={Refkey | Refkey[]} style={"classic" | "auto" | "functional"} />
import { FunctionalEnumDeclaration } from "@alloy-js/python/stc";
FunctionalEnumDeclaration({ baseType: "Enum" | "IntEnum" | "StrEnum" | "Flag" | "IntFlag", doc: Children, doc: Children, members: Array<{ name: string; value?: Children; jsValue?: string | number; doc?: string; }>, name: string, refkey: Refkey | Refkey[], style: "classic" | "auto" | "functional",}).children(children)
baseType | optional”Enum” | “IntEnum” | “StrEnum” | “Flag” | “IntFlag” The base type of the enum. One of: ‘Enum’, ‘IntEnum’, ‘StrEnum’, ‘Flag’, ‘IntFlag’. Defaults to ‘Enum’. |
children | optionalChildren |
doc | optionalChildren Optional docstring for the enum. |
doc | optionalChildren Documentation for this declaration |
members | optionalArray<{
name: string;
value?: Children;
jsValue?: string | number;
doc?: string;
}> Members of the enum as an array of objects. |
name | string The base name of this declaration. May change depending on naming policy and any conflicts. |
refkey | optionalRefkey | Refkey[] The refkey or array of refkeys for this declaration. |
style | optional”classic” | “auto” | “functional” The enum style: ‘classic’ (default), ‘auto’, or ‘functional’. |
Examples
Section titled “Examples”<FunctionalEnumDeclaration name="Direction" members={[ { name: "NORTH" }, { name: "SOUTH" }, { name: "EAST" }, { name: "WEST" } ]}/>
renders to:
Direction = Enum('Direction', ['NORTH', 'SOUTH', 'EAST', 'WEST'])
<FunctionalEnumDeclaration name="Status" members={[ { name: "PENDING", value: 1 }, { name: "ACTIVE", value: 2 }, { name: "INACTIVE", value: 3 } ]}/>
renders to:
Status = Enum('Status', {'PENDING': 1, 'ACTIVE': 2, 'INACTIVE': 3})