From 1d7f140485b0c8d5750254927b8ed723b67696f5 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Mon, 25 Jul 2022 09:16:58 -0400 Subject: [PATCH 1/4] refactor: add type hints to flask_sqlalchemy.model --- .../flask_sqlalchemy/model.pyi | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi b/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi index b7f9a348594d..e7b948b714f8 100644 --- a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi +++ b/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi @@ -1,8 +1,12 @@ from re import Pattern -from typing import Any +from typing import Any, Generic, TypeVar +from sqlalchemy import Table +from sqlalchemy.orm import Query from sqlalchemy.ext.declarative import DeclarativeMeta +_Model = TypeVar("_Model") + def should_set_tablename(cls: type) -> bool: ... camelcase_re: Pattern[str] @@ -10,14 +14,14 @@ camelcase_re: Pattern[str] def camel_to_snake_case(name: str) -> str: ... class NameMetaMixin(type): - def __init__(cls, name, bases, d) -> None: ... - def __table_cls__(cls, *args, **kwargs): ... + def __init__(cls, name: str, bases: tuple[type, ...], d: dict[str, Any]) -> None: ... + def __table_cls__(cls, *args: Any, **kwargs: Any) -> Table | None: ... class BindMetaMixin(type): - def __init__(cls, name, bases, d) -> None: ... + def __init__(cls, name: str, bases: tuple[type, ...], d: dict[str, Any]) -> None: ... class DefaultMeta(NameMetaMixin, BindMetaMixin, DeclarativeMeta): ... -class Model: - query_class: Any | None - query: Any | None +class Model(Generic[_Model]): + query_class: type[Query[_Model]] | None + query: Query[_Model] | None From c12e243889c00898e850da75ecbfc3a26dc48629 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 25 Jul 2022 13:20:48 +0000 Subject: [PATCH 2/4] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi b/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi index e7b948b714f8..5da2f31104b4 100644 --- a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi +++ b/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi @@ -1,9 +1,9 @@ from re import Pattern from typing import Any, Generic, TypeVar -from sqlalchemy import Table -from sqlalchemy.orm import Query +from sqlalchemy import Table from sqlalchemy.ext.declarative import DeclarativeMeta +from sqlalchemy.orm import Query _Model = TypeVar("_Model") From 454e2c84f3966fa32995a269626fb4f7870ca92d Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Sun, 31 Jul 2022 06:30:54 -0400 Subject: [PATCH 3/4] refactor: rename _Model to _ModelT --- stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi b/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi index 5da2f31104b4..88e445e68393 100644 --- a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi +++ b/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi @@ -5,7 +5,7 @@ from sqlalchemy import Table from sqlalchemy.ext.declarative import DeclarativeMeta from sqlalchemy.orm import Query -_Model = TypeVar("_Model") +_ModelT = TypeVar("_Model") def should_set_tablename(cls: type) -> bool: ... @@ -22,6 +22,6 @@ class BindMetaMixin(type): class DefaultMeta(NameMetaMixin, BindMetaMixin, DeclarativeMeta): ... -class Model(Generic[_Model]): - query_class: type[Query[_Model]] | None - query: Query[_Model] | None +class Model(Generic[_ModelT]): + query_class: type[Query[_ModelT]] | None + query: Query[_ModelT] | None From ff3af5f4571655bfb7733bd3dad0ccd125463522 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Sun, 31 Jul 2022 06:34:30 -0400 Subject: [PATCH 4/4] fix: remove *args and **kwargs types --- stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi b/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi index 88e445e68393..b8250ae16b28 100644 --- a/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi +++ b/stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi @@ -5,7 +5,7 @@ from sqlalchemy import Table from sqlalchemy.ext.declarative import DeclarativeMeta from sqlalchemy.orm import Query -_ModelT = TypeVar("_Model") +_ModelT = TypeVar("_ModelT") def should_set_tablename(cls: type) -> bool: ... @@ -15,7 +15,7 @@ def camel_to_snake_case(name: str) -> str: ... class NameMetaMixin(type): def __init__(cls, name: str, bases: tuple[type, ...], d: dict[str, Any]) -> None: ... - def __table_cls__(cls, *args: Any, **kwargs: Any) -> Table | None: ... + def __table_cls__(cls, *args, **kwargs) -> Table | None: ... class BindMetaMixin(type): def __init__(cls, name: str, bases: tuple[type, ...], d: dict[str, Any]) -> None: ...