From bbf15294ebb2d2cd8a0825ad382844c54668197e Mon Sep 17 00:00:00 2001 From: svlandeg Date: Fri, 13 Mar 2026 10:54:24 +0100 Subject: [PATCH] coditional import of Color to avoid deprecation warning --- fastapi/_compat/__init__.py | 1 + fastapi/_compat/v2.py | 6 ++++++ fastapi/encoders.py | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/fastapi/_compat/__init__.py b/fastapi/_compat/__init__.py index 4581c38c88..225e79d9f4 100644 --- a/fastapi/_compat/__init__.py +++ b/fastapi/_compat/__init__.py @@ -19,6 +19,7 @@ from .shared import ( from .shared import lenient_issubclass as lenient_issubclass from .shared import sequence_types as sequence_types from .shared import value_is_sequence as value_is_sequence +from .v2 import Color as Color from .v2 import ModelField as ModelField from .v2 import PydanticSchemaGenerationError as PydanticSchemaGenerationError from .v2 import RequiredParam as RequiredParam diff --git a/fastapi/_compat/v2.py b/fastapi/_compat/v2.py index c6137e17c8..d2ef4a8b85 100644 --- a/fastapi/_compat/v2.py +++ b/fastapi/_compat/v2.py @@ -39,6 +39,12 @@ from pydantic_core.core_schema import ( RequiredParam = PydanticUndefined Undefined = PydanticUndefined +# pydantic.color.Color is deprecated since v2.0b3 +try: + from pydantic_extra_types import Color +except ImportError: + from pydantic.color import Color # noqa: F401 + def define_forwardref() -> Callable[..., Any]: # eval_type_lenient has been deprecated since Pydantic v2.10.0b1 (PR #10530) diff --git a/fastapi/encoders.py b/fastapi/encoders.py index e20255c110..863b5d4531 100644 --- a/fastapi/encoders.py +++ b/fastapi/encoders.py @@ -22,12 +22,12 @@ from annotated_doc import Doc from fastapi.exceptions import PydanticV1NotSupportedError from fastapi.types import IncEx from pydantic import BaseModel -from pydantic.color import Color from pydantic.networks import AnyUrl, NameEmail from pydantic.types import SecretBytes, SecretStr from pydantic_core import PydanticUndefinedType from ._compat import ( + Color, Url, is_pydantic_v1_model_instance, )