Skip to main content

dataclass_args_schema

Returns a schema for validating dataclass arguments, e.g.:

from pydantic_core import SchemaValidator, core_schema

field_a = core_schema.dataclass_field(
name='a', schema=core_schema.str_schema(), kw_only=False
)
field_b = core_schema.dataclass_field(
name='b', schema=core_schema.bool_schema(), kw_only=False
)
schema = core_schema.dataclass_args_schema('Foobar', [field_a, field_b])
v = SchemaValidator(schema)
assert v.validate_python({'a': 'hello', 'b': True}) == ({'a': 'hello', 'b': True}, None)
def dataclass_args_schema(
dataclass_name: str,
fields: list[DataclassField],
computed_fields: list[ComputedField] | None = None,
collect_init_only: bool | None = None,
ref: str | None = None,
metadata: dict[str, Any] | None = None,
serialization: SerSchema | None = None,
extra_behavior: ExtraBehavior | None = None
) - > DataclassArgsSchema

Returns a schema for validating dataclass arguments, e.g.:

from pydantic_core import SchemaValidator, core_schema

field_a = core_schema.dataclass_field(
name='a', schema=core_schema.str_schema(), kw_only=False
)
field_b = core_schema.dataclass_field(
name='b', schema=core_schema.bool_schema(), kw_only=False
)
schema = core_schema.dataclass_args_schema('Foobar', [field_a, field_b])
v = SchemaValidator(schema)
assert v.validate_python({'a': 'hello', 'b': True}) == ({'a': 'hello', 'b': True}, None)

Parameters

NameTypeDescription
dataclass_namestrThe name of the dataclass being validated
fieldslist[DataclassField]The fields to use for the dataclass
computed_fields`list[ComputedField]None` = None
collect_init_only`boolNone` = None
ref`strNone` = None
metadata`dict[str, Any]None` = None
serialization`SerSchemaNone` = None
extra_behavior`ExtraBehaviorNone` = None

Returns

TypeDescription
DataclassArgsSchemaA core schema dictionary defining how to validate and parse arguments for a specific dataclass structure