Skip to main content

enum_schema

Returns a schema that matches an enum value, e.g.:

```py
from enum import Enum
from pydantic_core import SchemaValidator, core_schema

class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3

schema = core_schema.enum_schema(Color, list(Color.__members__.values()))
v = SchemaValidator(schema)
assert v.validate_python(2) is Color.GREEN
```
def enum_schema(
cls: Any,
members: list[Any],
sub_type: Literal['str', 'int', 'float'] | None = None,
missing: Callable[[Any], Any] | None = None,
strict: bool | None = None,
ref: str | None = None,
metadata: dict[str, Any] | None = None,
serialization: SerSchema | None = None
) - > EnumSchema

Returns a schema that matches an enum value.

Parameters

NameTypeDescription
clsAnyThe Python enum class being defined in the schema.
memberslist[Any]The list of valid enum members, typically retrieved via list(MyEnum.members.values()).
sub_type`Literal['str', 'int', 'float']None` = None
missing`Callable[[Any], Any]None` = None
strict`boolNone` = None
ref`strNone` = None
metadata`dict[str, Any]None` = None
serialization`SerSchemaNone` = None

Returns

TypeDescription
EnumSchemaA dictionary-based schema configuration used by pydantic-core to validate and serialize enum members.