MCPcopy
hub / github.com/pydantic/pydantic / wrap_default

Function wrap_default

pydantic/_internal/_generate_schema.py:2659–2681  ·  view source on GitHub ↗

Wrap schema with default schema if default value or `default_factory` are available. Args: field_info: The field info object. schema: The schema to apply default on. Returns: Updated schema by default value or `default_factory`.

(field_info: FieldInfo, schema: core_schema.CoreSchema)

Source from the content-addressed store, hash-verified

2657
2658
2659def wrap_default(field_info: FieldInfo, schema: core_schema.CoreSchema) -> core_schema.CoreSchema:
2660 """Wrap schema with default schema if default value or `default_factory` are available.
2661
2662 Args:
2663 field_info: The field info object.
2664 schema: The schema to apply default on.
2665
2666 Returns:
2667 Updated schema by default value or `default_factory`.
2668 """
2669 if field_info.default_factory:
2670 return core_schema.with_default_schema(
2671 schema,
2672 default_factory=field_info.default_factory,
2673 default_factory_takes_data=takes_validated_data_argument(field_info.default_factory),
2674 validate_default=field_info.validate_default,
2675 )
2676 elif field_info.default is not PydanticUndefined:
2677 return core_schema.with_default_schema(
2678 schema, default=field_info.default, validate_default=field_info.validate_default
2679 )
2680 else:
2681 return schema
2682
2683
2684def _extract_get_pydantic_json_schema(tp: Any) -> GetJsonSchemaFunction | None:

Callers 4

_common_field_schemaMethod · 0.85
_annotated_schemaMethod · 0.85

Calls 1

Tested by

no test coverage detected