(
self, v: Any, values: Dict[str, Any], loc: 'LocStr', cls: Optional['ModelOrDc']
)
| 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'] |
no test coverage detected