MCPcopy
hub / github.com/pydantic/pydantic / _from_dataclass_field

Method _from_dataclass_field

pydantic/fields.py:643–668  ·  view source on GitHub ↗

Return a new `FieldInfo` instance from a `dataclasses.Field` instance. Args: dc_field: The `dataclasses.Field` instance to convert. Returns: The corresponding `FieldInfo` instance. Raises: TypeError: If any of the `FieldInfo` kwargs does

(dc_field: DataclassField[Any])

Source from the content-addressed store, hash-verified

641
642 @staticmethod
643 def _from_dataclass_field(dc_field: DataclassField[Any]) -> FieldInfo:
644 """Return a new `FieldInfo` instance from a `dataclasses.Field` instance.
645
646 Args:
647 dc_field: The `dataclasses.Field` instance to convert.
648
649 Returns:
650 The corresponding `FieldInfo` instance.
651
652 Raises:
653 TypeError: If any of the `FieldInfo` kwargs does not match the `dataclass.Field` kwargs.
654 """
655 default = dc_field.default
656 if default is dataclasses.MISSING:
657 default = _Unset
658
659 if dc_field.default_factory is dataclasses.MISSING:
660 default_factory = _Unset
661 else:
662 default_factory = dc_field.default_factory
663
664 # use the `Field` function so in correct kwargs raise the correct `TypeError`
665 dc_field_metadata = {k: v for k, v in dc_field.metadata.items() if k in _FIELD_ARG_NAMES}
666 if sys.version_info >= (3, 14) and dc_field.doc is not None:
667 dc_field_metadata['description'] = dc_field.doc
668 return Field(default=default, default_factory=default_factory, repr=dc_field.repr, **dc_field_metadata) # pyright: ignore[reportCallIssue]
669
670 @staticmethod
671 def _collect_metadata(kwargs: dict[str, Any]) -> list[Any]:

Callers 1

Calls 2

FieldFunction · 0.70
itemsMethod · 0.45

Tested by

no test coverage detected