MCPcopy
hub / github.com/pydantic/pydantic / _validate_tuple

Method _validate_tuple

pydantic/v1/fields.py:970–998  ·  view source on GitHub ↗
(
        self, v: Any, values: Dict[str, Any], loc: 'LocStr', cls: Optional['ModelOrDc']
    )

Source from the content-addressed store, hash-verified

968 return iterable, None
969
970 def _validate_tuple(
971 self, v: Any, values: Dict[str, Any], loc: 'LocStr', cls: Optional['ModelOrDc']
972 ) -> 'ValidateReturn':
973 e: Optional[Exception] = None
974 if not sequence_like(v):
975 e = errors_.TupleError()
976 else:
977 actual_length, expected_length = len(v), len(self.sub_fields) # type: ignore
978 if actual_length != expected_length:
979 e = errors_.TupleLengthError(actual_length=actual_length, expected_length=expected_length)
980
981 if e:
982 return v, ErrorWrapper(e, loc)
983
984 loc = loc if isinstance(loc, tuple) else (loc,)
985 result = []
986 errors: List[ErrorList] = []
987 for i, (v_, field) in enumerate(zip(v, self.sub_fields)): # type: ignore
988 v_loc = *loc, i
989 r, ee = field.validate(v_, values, loc=v_loc, cls=cls)
990 if ee:
991 errors.append(ee)
992 else:
993 result.append(r)
994
995 if errors:
996 return v, errors
997 else:
998 return tuple(result), None
999
1000 def _validate_mapping_like(
1001 self, v: Any, values: Dict[str, Any], loc: 'LocStr', cls: Optional['ModelOrDc']

Callers 1

validateMethod · 0.95

Calls 3

sequence_likeFunction · 0.90
ErrorWrapperClass · 0.90
validateMethod · 0.45

Tested by

no test coverage detected