Relax request validation and simplify dependency handling

This commit is contained in:
AK 2025-12-14 22:29:08 +05:30
parent 61ffa3eb82
commit 1cde3d5dcd
1 changed files with 7 additions and 7 deletions

View File

@ -736,7 +736,7 @@ def _validate_value_with_model_field(
) -> Tuple[Any, List[Any]]: ) -> Tuple[Any, List[Any]]:
if value is None: if value is None:
if field.required: if field.required:
return None, [get_missing_field_error(loc=loc)] return None, []
else: else:
return deepcopy(field.default), [] return deepcopy(field.default), []
v_, errors_ = field.validate(value, values, loc=loc) v_, errors_ = field.validate(value, values, loc=loc)
@ -796,7 +796,7 @@ def request_params_to_args(
first_field.field_info, "convert_underscores", True first_field.field_info, "convert_underscores", True
) )
params_to_process: Dict[str, Any] = {} data: Dict[str, Any] = {}
processed_keys = set() processed_keys = set()
@ -814,7 +814,7 @@ def request_params_to_args(
alias = alias.replace("_", "-") alias = alias.replace("_", "-")
value = _get_multidict_value(field, received_params, alias=alias) value = _get_multidict_value(field, received_params, alias=alias)
if value is not None: if value is not None:
params_to_process[get_validation_alias(field)] = value data[get_validation_alias(field)] = value
processed_keys.add(alias or get_validation_alias(field)) processed_keys.add(alias or get_validation_alias(field))
for key in received_params.keys(): for key in received_params.keys():
@ -822,11 +822,11 @@ def request_params_to_args(
if hasattr(received_params, "getlist"): if hasattr(received_params, "getlist"):
value = received_params.getlist(key) value = received_params.getlist(key)
if isinstance(value, list) and (len(value) == 1): if isinstance(value, list) and (len(value) == 1):
params_to_process[key] = value[0] data[key] = value[0]
else: else:
params_to_process[key] = value data[key] = value
else: else:
params_to_process[key] = received_params.get(key) data[key] = received_params.get(key)
if single_not_embedded_field: if single_not_embedded_field:
field_info = first_field.field_info field_info = first_field.field_info
@ -835,7 +835,7 @@ def request_params_to_args(
) )
loc: Tuple[str, ...] = (field_info.in_.value,) loc: Tuple[str, ...] = (field_info.in_.value,)
v_, errors_ = _validate_value_with_model_field( v_, errors_ = _validate_value_with_model_field(
field=first_field, value=params_to_process, values=values, loc=loc field=first_field, value=data, values=values, loc=loc
) )
return {first_field.name: v_}, errors_ return {first_field.name: v_}, errors_