diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 57dba1c286..ba177da7d8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -67,7 +67,7 @@ jobs: if: matrix.pydantic-version == 'pydantic-v2' run: uv pip install --upgrade "pydantic>=2.0.2,<3.0.0" - name: Lint - if: matrix.pydantic-version == 'pydantic-v2' + if: matrix.pydantic-version == 'pydantic-v2' && matrix.python-version != "3.8" run: bash scripts/lint.sh - run: mkdir coverage - name: Test diff --git a/sqlmodel/main.py b/sqlmodel/main.py index 45a41997fe..ebbd72d8af 100644 --- a/sqlmodel/main.py +++ b/sqlmodel/main.py @@ -477,7 +477,7 @@ def Relationship( class SQLModelMetaclass(ModelMetaclass, DeclarativeMeta): __sqlmodel_relationships__: Dict[str, RelationshipInfo] model_config: SQLModelConfig - model_fields: Dict[str, FieldInfo] # type: ignore[assignment] + model_fields: Dict[str, FieldInfo] __config__: Type[SQLModelConfig] __fields__: Dict[str, ModelField] # type: ignore[assignment] @@ -846,8 +846,9 @@ def model_validate( strict: Union[bool, None] = None, from_attributes: Union[bool, None] = None, context: Union[Dict[str, Any], None] = None, - update: Union[Dict[str, Any], None] = None, + **kwargs: Any, ) -> _TSQLModel: + update = kwargs.get("update", None) return sqlmodel_validate( cls=cls, obj=obj, @@ -863,19 +864,21 @@ def model_dump( mode: Union[Literal["json", "python"], str] = "python", include: Union[IncEx, None] = None, exclude: Union[IncEx, None] = None, - context: Union[Dict[str, Any], None] = None, - by_alias: bool = False, + context: Union[Any, None] = None, + by_alias: Union[bool, None] = False, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, round_trip: bool = False, warnings: Union[bool, Literal["none", "warn", "error"]] = True, + fallback: Union[Callable[[Any], Any], None] = None, serialize_as_any: bool = False, ) -> Dict[str, Any]: if PYDANTIC_MINOR_VERSION >= (2, 7): extra_kwargs: Dict[str, Any] = { "context": context, "serialize_as_any": serialize_as_any, + "fallback": fallback, } else: extra_kwargs = {} @@ -893,6 +896,7 @@ def model_dump( **extra_kwargs, ) else: + assert by_alias is not None return super().dict( include=include, exclude=exclude,