def serialize_response( *, field: ModelField = None, response: Response, include: Union[SetIntStr, DictIntStrAny] = None, exclude: Union[SetIntStr, DictIntStrAny] = set(), by_alias: bool = True, exclude_unset: bool = False, ) -> Any: if field: errors = [] if exclude_unset and isinstance(response, BaseModel): if PYDANTIC_1: response = response.dict(exclude_unset=exclude_unset) else: response = response.dict( skip_defaults=exclude_unset) # pragma: nocover value, errors_ = field.validate(response, {}, loc=("response", )) if isinstance(errors_, ErrorWrapper): errors.append(errors_) elif isinstance(errors_, list): errors.extend(errors_) if errors: raise ValidationError(errors, field.type_) return jsonable_encoder( value, include=include, exclude=exclude, by_alias=by_alias, exclude_unset=exclude_unset, ) else: return jsonable_encoder(response)
def serialize_response( *, field: Field = None, response: Response, include: Set[str] = None, exclude: Set[str] = set(), by_alias: bool = True, skip_defaults: bool = False, ) -> Any: if field: errors = [] value, errors_ = field.validate(response, {}, loc=("response", )) if isinstance(errors_, ErrorWrapper): errors.append(errors_) elif isinstance(errors_, list): errors.extend(errors_) if errors: raise ValidationError(errors) if skip_defaults and isinstance(response, BaseModel): value = response.dict(skip_defaults=skip_defaults) return jsonable_encoder( value, include=include, exclude=exclude, by_alias=by_alias, skip_defaults=skip_defaults, ) else: return jsonable_encoder(response)