MCPcopy
hub / github.com/pydantic/pydantic / validate

Method validate

pydantic/v1/main.py:706–742  ·  view source on GitHub ↗
(cls: Type['Model'], value: Any)

Source from the content-addressed store, hash-verified

704
705 @classmethod
706 def validate(cls: Type['Model'], value: Any) -> 'Model':
707 if isinstance(value, cls):
708 copy_on_model_validation = cls.__config__.copy_on_model_validation
709 # whether to deep or shallow copy the model on validation, None means do not copy
710 deep_copy: Optional[bool] = None
711 if copy_on_model_validation not in {'deep', 'shallow', 'none'}:
712 # Warn about deprecated behavior
713 warnings.warn(
714 "`copy_on_model_validation` should be a string: 'deep', 'shallow' or 'none'", DeprecationWarning
715 )
716 if copy_on_model_validation:
717 deep_copy = False
718
719 if copy_on_model_validation == 'shallow':
720 # shallow copy
721 deep_copy = False
722 elif copy_on_model_validation == 'deep':
723 # deep copy
724 deep_copy = True
725
726 if deep_copy is None:
727 return value
728 else:
729 return value._copy_and_set_values(value.__dict__, value.__fields_set__, deep=deep_copy)
730
731 value = cls._enforce_dict_if_root(value)
732
733 if isinstance(value, dict):
734 return cls(**value)
735 elif cls.__config__.orm_mode:
736 return cls.from_orm(value)
737 else:
738 try:
739 value_as_dict = dict(value)
740 except (TypeError, ValueError) as e:
741 raise DictError() from e
742 return cls(**value_as_dict)
743
744 @classmethod
745 def _decompose_class(cls: Type['Model'], obj: Any) -> GetterDict:

Callers 2

__setattr__Method · 0.45
validate_modelFunction · 0.45

Calls 4

DictErrorClass · 0.90
_enforce_dict_if_rootMethod · 0.80
_copy_and_set_valuesMethod · 0.45
from_ormMethod · 0.45

Tested by

no test coverage detected