💚 Fix linting in CI (#1340)

Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
This commit is contained in:
Sofie Van Landeghem
2025-04-26 21:04:09 +02:00
committed by GitHub
parent 6c0410ea91
commit 4b5ad42c23
3 changed files with 19 additions and 7 deletions

View File

@ -103,7 +103,14 @@ if IS_PYDANTIC_V2:
model.model_config[parameter] = value # type: ignore[literal-required]
def get_model_fields(model: InstanceOrType[BaseModel]) -> Dict[str, "FieldInfo"]:
return model.model_fields
# TODO: refactor the usage of this function to always pass the class
# not the instance, and then remove this extra check
# this is for compatibility with Pydantic v3
if isinstance(model, type):
use_model = model
else:
use_model = model.__class__
return use_model.model_fields
def get_fields_set(
object: InstanceOrType["SQLModel"],

View File

@ -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: ClassVar[Dict[str, FieldInfo]]
__config__: Type[SQLModelConfig]
__fields__: Dict[str, ModelField] # type: ignore[assignment]
@ -839,7 +839,7 @@ class SQLModel(BaseModel, metaclass=SQLModelMetaclass, registry=default_registry
return cls.__name__.lower()
@classmethod
def model_validate(
def model_validate( # type: ignore[override]
cls: Type[_TSQLModel],
obj: Any,
*,
@ -863,20 +863,25 @@ class SQLModel(BaseModel, metaclass=SQLModelMetaclass, registry=default_registry
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] = None,
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, 11):
by_alias = by_alias or False
if PYDANTIC_MINOR_VERSION >= (2, 7):
extra_kwargs: Dict[str, Any] = {
"context": context,
"serialize_as_any": serialize_as_any,
}
if PYDANTIC_MINOR_VERSION >= (2, 11):
extra_kwargs["fallback"] = fallback
else:
extra_kwargs = {}
if IS_PYDANTIC_V2:
@ -896,7 +901,7 @@ class SQLModel(BaseModel, metaclass=SQLModelMetaclass, registry=default_registry
return super().dict(
include=include,
exclude=exclude,
by_alias=by_alias,
by_alias=by_alias or False,
exclude_unset=exclude_unset,
exclude_defaults=exclude_defaults,
exclude_none=exclude_none,