diff --git a/fastapi/_compat/shared.py b/fastapi/_compat/shared.py index bc2fdeefbc..4df520444e 100644 --- a/fastapi/_compat/shared.py +++ b/fastapi/_compat/shared.py @@ -179,7 +179,7 @@ try: with warnings.catch_warnings(): warnings.simplefilter("ignore", UserWarning) from pydantic import v1 as _pydantic_v1 - _PydanticV1BaseModel = _pydantic_v1.BaseModel + _PydanticV1BaseModel: Any = _pydantic_v1.BaseModel except ImportError: # pragma: no cover _PydanticV1BaseModel = None diff --git a/fastapi/_compat/v2.py b/fastapi/_compat/v2.py index efdd3ee993..1b86d55678 100644 --- a/fastapi/_compat/v2.py +++ b/fastapi/_compat/v2.py @@ -538,7 +538,7 @@ def _regenerate_error_with_loc( break try: if isinstance(curr_input, (dict, list)): - curr_input = curr_input[path_item] # type: ignore[index] + curr_input = curr_input[path_item] else: break except (KeyError, IndexError, TypeError): diff --git a/fastapi/dependencies/utils.py b/fastapi/dependencies/utils.py index 45ac048a5e..2acb541675 100644 --- a/fastapi/dependencies/utils.py +++ b/fastapi/dependencies/utils.py @@ -918,9 +918,11 @@ def request_params_to_args( # model_dump might convert inner models, which we don't want (FastAPI keeps them as objects) values.update(validated_data.__dict__) else: - values.update(validated_data) # type: ignore + values.update(validated_data) except ValidationError as exc: - field_in = fields[0].field_info.in_.value + first_field_info = fields[0].field_info + assert isinstance(first_field_info, params.Param) + field_in = first_field_info.in_.value # Map f.name to f.alias in case Pydantic returned the internal name name_to_alias = {f.name: get_validation_alias(f) for f in fields} @@ -928,8 +930,8 @@ def request_params_to_args( for err in exc.errors(include_url=False): err_loc = list(err["loc"]) if err_loc and err_loc[0] in name_to_alias: - err_loc[0] = name_to_alias[err_loc[0]] # type: ignore - err["loc"] = (field_in, *err_loc) # type: ignore + err_loc[0] = name_to_alias[err_loc[0]] + err["loc"] = (field_in, *err_loc) if err["type"] == "missing": err["input"] = None