Skip to main content

union_schema

Returns a schema that matches a union value, e.g.:

from pydantic_core import SchemaValidator, core_schema

schema = core_schema.union_schema([core_schema.str_schema(), core_schema.int_schema()])
v = SchemaValidator(schema)
assert v.validate_python('hello') == 'hello'
assert v.validate_python(1) == 1
def union_schema(
choices: list[CoreSchema | tuple[CoreSchema, str]],
auto_collapse: bool | None = None,
custom_error_type: str | None = None,
custom_error_message: str | None = None,
custom_error_context: dict[str, str | int] | None = None,
mode: Literal['smart', 'left_to_right'] | None = None,
ref: str | None = None,
metadata: dict[str, Any] | None = None,
serialization: SerSchema | None = None
) - > UnionSchema

Returns a schema that matches a union value.

Parameters

NameTypeDescription
choices`list[CoreSchematuple[CoreSchema, str]]`
auto_collapse`boolNone` = None
custom_error_type`strNone` = None
custom_error_message`strNone` = None
custom_error_context`dict[str, strint]
mode`Literal['smart', 'left_to_right']None` = None
ref`strNone` = None
metadata`dict[str, Any]None` = None
serialization`SerSchemaNone` = None

Returns

TypeDescription
UnionSchemaA core schema definition representing a union of multiple possible types.