From: Sebastián Ramírez Date: Mon, 7 Oct 2024 21:21:59 +0000 (+0200) Subject: 🚨 Fix types for new Pydantic (#1131) X-Git-Tag: 0.0.23~62 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=aa814e24bc18bd7fcce08c661f228eb41ffd0e96;p=thirdparty%2Ffastapi%2Fsqlmodel.git 🚨 Fix types for new Pydantic (#1131) --- diff --git a/sqlmodel/main.py b/sqlmodel/main.py index 1597e4e0..3532e81a 100644 --- a/sqlmodel/main.py +++ b/sqlmodel/main.py @@ -52,7 +52,7 @@ from sqlalchemy.orm.decl_api import DeclarativeMeta from sqlalchemy.orm.instrumentation import is_instrumented from sqlalchemy.sql.schema import MetaData from sqlalchemy.sql.sqltypes import LargeBinary, Time, Uuid -from typing_extensions import Literal, deprecated, get_origin +from typing_extensions import Literal, TypeAlias, deprecated, get_origin from ._compat import ( # type: ignore[attr-defined] IS_PYDANTIC_V2, @@ -90,7 +90,12 @@ if TYPE_CHECKING: _T = TypeVar("_T") NoArgAnyCallable = Callable[[], Any] -IncEx = Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None] +IncEx: TypeAlias = Union[ + Set[int], + Set[str], + Mapping[int, Union["IncEx", Literal[True]]], + Mapping[str, Union["IncEx", Literal[True]]], +] OnDeleteType = Literal["CASCADE", "SET NULL", "RESTRICT"] @@ -858,8 +863,8 @@ class SQLModel(BaseModel, metaclass=SQLModelMetaclass, registry=default_registry self, *, mode: Union[Literal["json", "python"], str] = "python", - include: IncEx = None, - exclude: IncEx = None, + include: Union[IncEx, None] = None, + exclude: Union[IncEx, None] = None, context: Union[Dict[str, Any], None] = None, by_alias: bool = False, exclude_unset: bool = False, @@ -908,8 +913,8 @@ class SQLModel(BaseModel, metaclass=SQLModelMetaclass, registry=default_registry def dict( self, *, - include: IncEx = None, - exclude: IncEx = None, + include: Union[IncEx, None] = None, + exclude: Union[IncEx, None] = None, by_alias: bool = False, exclude_unset: bool = False, exclude_defaults: bool = False,