1
1
from re import Pattern
2
- from typing import Any
2
+ from typing import Any , Generic , TypeVar
3
3
4
+ from sqlalchemy import Table
4
5
from sqlalchemy .ext .declarative import DeclarativeMeta
6
+ from sqlalchemy .orm import Query
7
+
8
+ _ModelT = TypeVar ("_ModelT" )
5
9
6
10
def should_set_tablename (cls : type ) -> bool : ...
7
11
@@ -10,14 +14,14 @@ camelcase_re: Pattern[str]
10
14
def camel_to_snake_case (name : str ) -> str : ...
11
15
12
16
class NameMetaMixin (type ):
13
- def __init__ (cls , name , bases , d ) -> None : ...
14
- def __table_cls__ (cls , * args , ** kwargs ): ...
17
+ def __init__ (cls , name : str , bases : tuple [ type , ...], d : dict [ str , Any ] ) -> None : ...
18
+ def __table_cls__ (cls , * args , ** kwargs ) -> Table | None : ...
15
19
16
20
class BindMetaMixin (type ):
17
- def __init__ (cls , name , bases , d ) -> None : ...
21
+ def __init__ (cls , name : str , bases : tuple [ type , ...], d : dict [ str , Any ] ) -> None : ...
18
22
19
23
class DefaultMeta (NameMetaMixin , BindMetaMixin , DeclarativeMeta ): ...
20
24
21
- class Model :
22
- query_class : Any | None
23
- query : Any | None
25
+ class Model ( Generic [ _ModelT ]) :
26
+ query_class : type [ Query [ _ModelT ]] | None
27
+ query : Query [ _ModelT ] | None
0 commit comments