Skip to content

Commit 3a22bf2

Browse files
authored
Add stubs for Flask-SQLAlchemy (#6946)
1 parent 76af728 commit 3a22bf2

File tree

5 files changed

+115
-0
lines changed

5 files changed

+115
-0
lines changed

pyrightconfig.stricter.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"stubs/cryptography",
3232
"stubs/dateparser",
3333
"stubs/docutils",
34+
"stubs/Flask-SQLAlchemy",
3435
"stubs/fpdf2",
3536
"stubs/html5lib",
3637
"stubs/httplib2",

stubs/Flask-SQLAlchemy/METADATA.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
version = "2.5.*"
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
from typing import Any
2+
3+
from . import utils as utils
4+
from .model import DefaultMeta as DefaultMeta, Model as Model
5+
6+
# SQLAlchemy is not part of typeshed
7+
_Query = Any
8+
_SessionBase = Any
9+
10+
models_committed: Any
11+
before_models_committed: Any
12+
13+
class SignallingSession(_SessionBase):
14+
app: Any
15+
def __init__(self, db, autocommit: bool = ..., autoflush: bool = ..., **options) -> None: ...
16+
def get_bind(self, mapper: Any | None = ..., clause: Any | None = ...): ...
17+
18+
def get_debug_queries(): ...
19+
20+
class Pagination:
21+
query: Any
22+
page: Any
23+
per_page: Any
24+
total: Any
25+
items: Any
26+
def __init__(self, query, page, per_page, total, items) -> None: ...
27+
@property
28+
def pages(self): ...
29+
def prev(self, error_out: bool = ...): ...
30+
@property
31+
def prev_num(self): ...
32+
@property
33+
def has_prev(self): ...
34+
def next(self, error_out: bool = ...): ...
35+
@property
36+
def has_next(self): ...
37+
@property
38+
def next_num(self): ...
39+
def iter_pages(
40+
self, left_edge: int = ..., left_current: int = ..., right_current: int = ..., right_edge: int = ...
41+
) -> None: ...
42+
43+
class BaseQuery(_Query):
44+
def get_or_404(self, ident, description: Any | None = ...): ...
45+
def first_or_404(self, description: Any | None = ...): ...
46+
def paginate(
47+
self, page: Any | None = ..., per_page: Any | None = ..., error_out: bool = ..., max_per_page: Any | None = ...
48+
): ...
49+
50+
def get_state(app): ...
51+
52+
class SQLAlchemy:
53+
Query: Any
54+
use_native_unicode: Any
55+
session: Any
56+
Model: Any
57+
app: Any
58+
def __init__(
59+
self,
60+
app: Any | None = ...,
61+
use_native_unicode: bool = ...,
62+
session_options: Any | None = ...,
63+
metadata: Any | None = ...,
64+
query_class=...,
65+
model_class=...,
66+
engine_options: Any | None = ...,
67+
) -> None: ...
68+
@property
69+
def metadata(self): ...
70+
def create_scoped_session(self, options: Any | None = ...): ...
71+
def create_session(self, options): ...
72+
def make_declarative_base(self, model, metadata: Any | None = ...): ...
73+
def init_app(self, app): ...
74+
def apply_pool_defaults(self, app, options): ...
75+
def apply_driver_hacks(self, app, sa_url, options): ...
76+
@property
77+
def engine(self): ...
78+
def make_connector(self, app: Any | None = ..., bind: Any | None = ...): ...
79+
def get_engine(self, app: Any | None = ..., bind: Any | None = ...): ...
80+
def create_engine(self, sa_url, engine_opts): ...
81+
def get_app(self, reference_app: Any | None = ...): ...
82+
def get_tables_for_bind(self, bind: Any | None = ...): ...
83+
def get_binds(self, app: Any | None = ...): ...
84+
def create_all(self, bind: str = ..., app: Any | None = ...) -> None: ...
85+
def drop_all(self, bind: str = ..., app: Any | None = ...) -> None: ...
86+
def reflect(self, bind: str = ..., app: Any | None = ...) -> None: ...
87+
88+
class FSADeprecationWarning(DeprecationWarning): ...
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from typing import Any, Pattern
2+
3+
_DeclarativeMeta = Any # SQLAlchemy is not part of typeshed
4+
5+
def should_set_tablename(cls: type) -> bool: ...
6+
7+
camelcase_re: Pattern[str]
8+
9+
def camel_to_snake_case(name: str) -> str: ...
10+
11+
class NameMetaMixin(type):
12+
def __init__(cls, name, bases, d) -> None: ...
13+
def __table_cls__(cls, *args, **kwargs): ...
14+
15+
class BindMetaMixin(type):
16+
def __init__(cls, name, bases, d) -> None: ...
17+
18+
class DefaultMeta(NameMetaMixin, BindMetaMixin, _DeclarativeMeta): ...
19+
20+
class Model:
21+
query_class: Any | None
22+
query: Any | None
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
def parse_version(v: str) -> tuple[int, int, int]: ...
2+
def sqlalchemy_version(op: str, val: str) -> bool: ...
3+
def engine_config_warning(config, version: str, deprecated_config_key: str, engine_option) -> None: ...

0 commit comments

Comments
 (0)