From af43b328ab56a4ea952994bff35729cf8184c2a6 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 18 Oct 2025 04:50:47 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20[pre-commit.ci]=20Auto=20format?= =?UTF-8?q?=20from=20pre-commit.com=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fastapi/_compat/shared.py | 11 ++++++++++- fastapi/_compat/v1.py | 2 ++ fastapi/utils.py | 7 +++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/fastapi/_compat/shared.py b/fastapi/_compat/shared.py index 19438d08e..4568b6307 100644 --- a/fastapi/_compat/shared.py +++ b/fastapi/_compat/shared.py @@ -140,7 +140,16 @@ def is_v1_field_info(field_info: Any) -> bool: # shim _v1_params classes if _v1_params is not None: - for name in ("Param", "Body", "Form", "File", "Query", "Path", "Header", "Cookie"): + for name in ( + "Param", + "Body", + "Form", + "File", + "Query", + "Path", + "Header", + "Cookie", + ): cls = getattr(_v1_params, name, None) if cls and isinstance(field_info, cls): return True diff --git a/fastapi/_compat/v1.py b/fastapi/_compat/v1.py index e96efef17..124bb786e 100644 --- a/fastapi/_compat/v1.py +++ b/fastapi/_compat/v1.py @@ -33,9 +33,11 @@ except Exception: # pydantic v1: usar o erro mais próximo semanticamente from pydantic.errors import ConfigError as _PSGE except Exception: + class _PSGE(Exception): # fallback defensivo (não deve acontecer) pass + PydanticSchemaGenerationError = _PSGE _pv1 = None diff --git a/fastapi/utils.py b/fastapi/utils.py index 5871a464b..506399ea5 100644 --- a/fastapi/utils.py +++ b/fastapi/utils.py @@ -111,9 +111,11 @@ def create_model_field( # Detect v1 context from fastapi._compat.shared import is_v1_field_info - is_v1_model = annotation_is_pydantic_v1(type_) or lenient_issubclass(type_, _get_v1().BaseModel) + is_v1_model = annotation_is_pydantic_v1(type_) or lenient_issubclass( + type_, _get_v1().BaseModel + ) is_v1_field = is_v1_field_info(field_info) - is_forced_v1 = (version == "1") + is_forced_v1 = version == "1" # Route to appropriate ModelField if is_v1_model or is_v1_field or is_forced_v1: @@ -128,6 +130,7 @@ def create_model_field( if PYDANTIC_V2: from ._compat import v2 + try: return v2.ModelField(**v2_kwargs) # type: ignore[return-value] except PydanticSchemaGenerationError: