From: Sebastián Ramírez Date: Sat, 8 Jan 2022 16:36:19 +0000 (+0100) Subject: ⬆ Upgrade mypy, fix type annotations (#218) X-Git-Tag: 0.0.7~101 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8d1b6f079adad47cc242710f6cb1790a8ad8fbd2;p=thirdparty%2Ffastapi%2Fsqlmodel.git ⬆ Upgrade mypy, fix type annotations (#218) --- diff --git a/pyproject.toml b/pyproject.toml index a8355cf1..5f22ceae 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ sqlalchemy2-stubs = {version = "*", allow-prereleases = true} [tool.poetry.dev-dependencies] pytest = "^6.2.4" -mypy = "^0.910" +mypy = "0.930" flake8 = "^3.9.2" black = {version = "^21.5-beta.1", python = "^3.7"} mkdocs = "^1.2.1" diff --git a/sqlmodel/main.py b/sqlmodel/main.py index 12f30ba1..4d6d2f27 100644 --- a/sqlmodel/main.py +++ b/sqlmodel/main.py @@ -6,7 +6,6 @@ from decimal import Decimal from enum import Enum from pathlib import Path from typing import ( - TYPE_CHECKING, AbstractSet, Any, Callable, @@ -24,11 +23,11 @@ from typing import ( cast, ) -from pydantic import BaseModel +from pydantic import BaseConfig, BaseModel from pydantic.errors import ConfigError, DictError from pydantic.fields import FieldInfo as PydanticFieldInfo from pydantic.fields import ModelField, Undefined, UndefinedType -from pydantic.main import BaseConfig, ModelMetaclass, validate_model +from pydantic.main import ModelMetaclass, validate_model from pydantic.typing import ForwardRef, NoArgAnyCallable, resolve_annotations from pydantic.utils import ROOT_KEY, Representation from sqlalchemy import ( @@ -453,7 +452,7 @@ def get_column_from_field(field: ModelField) -> Column: # type: ignore sa_column_kwargs = getattr(field.field_info, "sa_column_kwargs", Undefined) if sa_column_kwargs is not Undefined: kwargs.update(cast(Dict[Any, Any], sa_column_kwargs)) - return Column(sa_type, *args, **kwargs) + return Column(sa_type, *args, **kwargs) # type: ignore class_registry = weakref.WeakValueDictionary() # type: ignore @@ -494,9 +493,6 @@ class SQLModel(BaseModel, metaclass=SQLModelMetaclass, registry=default_registry def __init__(__pydantic_self__, **data: Any) -> None: # Uses something other than `self` the first arg to allow "self" as a # settable attribute - if TYPE_CHECKING: - __pydantic_self__.__dict__: Dict[str, Any] = {} - __pydantic_self__.__fields_set__: Set[str] = set() values, fields_set, validation_error = validate_model( __pydantic_self__.__class__, data ) @@ -608,7 +604,7 @@ class SQLModel(BaseModel, metaclass=SQLModelMetaclass, registry=default_registry return cls(**value_as_dict) # From Pydantic, override to only show keys from fields, omit SQLAlchemy attributes - def _calculate_keys( # type: ignore + def _calculate_keys( self, include: Optional[Mapping[Union[int, str], Any]], exclude: Optional[Mapping[Union[int, str], Any]],