Skip to content

Commit d389b5f

Browse files
authored
Import SQLAlchemy types in Flask-SQLAlchemy (#7861)
1 parent 4191906 commit d389b5f

File tree

4 files changed

+15
-10
lines changed

4 files changed

+15
-10
lines changed

stubs/Flask-SQLAlchemy/METADATA.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
version = "2.5.*"
2+
requires = ["types-SQLAlchemy"]

stubs/Flask-SQLAlchemy/flask_sqlalchemy/__init__.pyi

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
from typing import Any
1+
from typing import Any, TypeVar
2+
3+
from sqlalchemy.orm.query import Query
4+
from sqlalchemy.orm.session import Session
25

36
from . import utils as utils
47
from .model import DefaultMeta as DefaultMeta, Model as Model
58

6-
# SQLAlchemy is not part of typeshed
7-
_Query = Any
8-
_SessionBase = Any
9-
109
models_committed: Any
1110
before_models_committed: Any
1211

13-
class SignallingSession(_SessionBase):
12+
class SignallingSession(Session):
1413
app: Any
1514
def __init__(self, db, autocommit: bool = ..., autoflush: bool = ..., **options) -> None: ...
16-
def get_bind(self, mapper: Any | None = ..., clause: Any | None = ...): ...
15+
def get_bind(self, mapper: Any | None = ..., clause: Any | None = ...): ... # type: ignore[override]
1716

1817
def get_debug_queries(): ...
1918

@@ -40,7 +39,9 @@ class Pagination:
4039
self, left_edge: int = ..., left_current: int = ..., right_current: int = ..., right_edge: int = ...
4140
) -> None: ...
4241

43-
class BaseQuery(_Query):
42+
_T = TypeVar("_T")
43+
44+
class BaseQuery(Query[_T]):
4445
def get_or_404(self, ident, description: Any | None = ...): ...
4546
def first_or_404(self, description: Any | None = ...): ...
4647
def paginate(

stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from typing import Any, Pattern
22

3-
_DeclarativeMeta = Any # SQLAlchemy is not part of typeshed
3+
from sqlalchemy.ext.declarative import DeclarativeMeta
44

55
def should_set_tablename(cls: type) -> bool: ...
66

@@ -15,7 +15,7 @@ class NameMetaMixin(type):
1515
class BindMetaMixin(type):
1616
def __init__(cls, name, bases, d) -> None: ...
1717

18-
class DefaultMeta(NameMetaMixin, BindMetaMixin, _DeclarativeMeta): ...
18+
class DefaultMeta(NameMetaMixin, BindMetaMixin, DeclarativeMeta): ...
1919

2020
class Model:
2121
query_class: Any | None

tests/pytype_exclude_list.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,6 @@ stubs/SQLAlchemy/sqlalchemy/sql/functions.pyi
108108
stubs/SQLAlchemy/sqlalchemy/sql/lambdas.pyi
109109
stubs/SQLAlchemy/sqlalchemy/sql/schema.pyi
110110
stubs/SQLAlchemy/sqlalchemy/sql/selectable.pyi
111+
stubs/Flask-SQLAlchemy/flask_sqlalchemy/__init__.pyi
112+
stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi
113+
stubs/Flask-SQLAlchemy/flask_sqlalchemy/utils.pyi

0 commit comments

Comments
 (0)