@@ -5,7 +5,7 @@ from collections.abc import Callable, Generator, Iterable, Iterator
55from datetime import datetime
66from decimal import Decimal
77from types import TracebackType
8- from typing import Any , ClassVar , Final , Literal , NamedTuple , NoReturn , TypeVar , overload , type_check_only
8+ from typing import Any , ClassVar , Final , Literal , NamedTuple , NoReturn , TypeAlias , TypeVar , overload , type_check_only
99from typing_extensions import Self , TypeIs
1010from uuid import UUID
1111
@@ -18,6 +18,7 @@ def reraise(tp: Unused, value: BaseException, tb: TracebackType | None = None) -
1818_T = TypeVar ("_T" )
1919_VT = TypeVar ("_VT" )
2020_F = TypeVar ("_F" , bound = Callable [..., Any ])
21+ _DatabaseType : TypeAlias = Database | DatabaseProxy
2122
2223class attrdict (dict [str , _VT ]):
2324 def __getattr__ (self , attr : str ) -> _VT : ...
@@ -192,7 +193,7 @@ class BaseTable(Source):
192193class _BoundTableContext (_callable_context_manager ):
193194 table : Incomplete
194195 database : Incomplete
195- def __init__ (self , table , database ) -> None : ...
196+ def __init__ (self , table , database : _DatabaseType ) -> None : ...
196197 def __enter__ (self ): ...
197198 def __exit__ (
198199 self , exc_type : type [BaseException ] | None , exc_val : BaseException | None , exc_tb : TracebackType | None
@@ -206,8 +207,8 @@ class Table(_HashableSource, BaseTable): # type: ignore[misc]
206207 self , name , columns = None , primary_key = None , schema : str | None = None , alias = None , _model = None , _database = None
207208 ) -> None : ...
208209 def clone (self ) -> Table : ...
209- def bind (self , database = None ) -> Self : ...
210- def bind_ctx (self , database = None ) -> _BoundTableContext : ...
210+ def bind (self , database : _DatabaseType | None = None ) -> Self : ...
211+ def bind_ctx (self , database : _DatabaseType | None = None ) -> _BoundTableContext : ...
211212 def select (self , * columns ) -> Select : ...
212213 def insert (self , insert = None , columns = None , ** kwargs ) -> Insert : ...
213214 def replace (self , insert = None , columns = None , ** kwargs ): ...
@@ -529,16 +530,16 @@ class OnConflict(Node):
529530class BaseQuery (Node ):
530531 default_row_type : Incomplete
531532 def __init__ (self , _database = None , ** kwargs ) -> None : ...
532- def bind (self , database = None ) -> Self : ...
533+ def bind (self , database : _DatabaseType | None = None ) -> Self : ...
533534 def clone (self ) -> Self : ...
534535 def dicts (self , as_dict : bool = True ) -> Self : ...
535536 def tuples (self , as_tuple : bool = True ) -> Self : ...
536537 def namedtuples (self , as_namedtuple : bool = True ) -> Self : ...
537538 def objects (self , constructor = None ) -> Self : ...
538539 def __sql__ (self , ctx ) -> None : ...
539540 def sql (self ): ...
540- def execute (self , database = None ): ...
541- def iterator (self , database = None ): ...
541+ def execute (self , database : _DatabaseType | None = None ): ...
542+ def iterator (self , database : _DatabaseType | None = None ): ...
542543 def __iter__ (self ): ...
543544 def __getitem__ (self , value ): ...
544545 def __len__ (self ) -> int : ...
@@ -575,20 +576,31 @@ class SelectQuery(Query):
575576 def select_from (self , * columns ) -> Select : ...
576577
577578class SelectBase (_HashableSource , Source , SelectQuery ): # type: ignore[misc]
578- def peek (self , database = None , n : int = 1 ): ...
579- def first (self , database = None , n : int = 1 ): ...
580- def scalar (self , database = None , as_tuple : bool = False , as_dict : bool = False ): ...
581- def scalars (self , database = None ) -> Generator [Incomplete ]: ...
582- def count (self , database = None , clear_limit : bool = False ) -> int : ...
583- def exists (self , database = None ) -> bool : ...
584- def get (self , database = None ): ...
579+ def peek (self , database : _DatabaseType | None = None , n : int = 1 ): ...
580+ def first (
581+ self , database : _DatabaseType | None = None , n : int = 1
582+ ): ...
583+ def scalar (
584+ self ,
585+ database : _DatabaseType | None = None ,
586+ as_tuple : bool = False ,
587+ as_dict : bool = False ,
588+ ): ...
589+ def scalars (
590+ self , database : _DatabaseType | None = None
591+ ) -> Generator [Incomplete ]: ...
592+ def count (
593+ self , database : _DatabaseType | None = None , clear_limit : bool = False
594+ ) -> int : ...
595+ def exists (self , database : _DatabaseType | None = None ) -> bool : ...
596+ def get (self , database : _DatabaseType | None = None ): ...
585597
586598class CompoundSelectQuery (SelectBase ):
587599 lhs : Incomplete
588600 op : Incomplete
589601 rhs : Incomplete
590602 def __init__ (self , lhs , op , rhs ) -> None : ...
591- def exists (self , database = None ) -> bool : ...
603+ def exists (self , database : _DatabaseType | None = None ) -> bool : ...
592604 def __sql__ (self , ctx ): ...
593605
594606class Select (SelectBase ):
@@ -635,8 +647,8 @@ class _WriteQuery(Query):
635647 def cte (self , name , recursive : bool = False , columns = None , materialized = None ) -> CTE : ...
636648 def returning (self , * returning ) -> Self : ...
637649 def apply_returning (self , ctx ): ...
638- def execute_returning (self , database ): ...
639- def handle_result (self , database , cursor ): ...
650+ def execute_returning (self , database : _DatabaseType ): ...
651+ def handle_result (self , database : _DatabaseType , cursor ): ...
640652 def __sql__ (self , ctx ): ...
641653
642654class Update (_WriteQuery ):
@@ -660,7 +672,7 @@ class Insert(_WriteQuery):
660672 def get_default_data (self ): ...
661673 def get_default_columns (self ) -> list [Incomplete ] | None : ...
662674 def __sql__ (self , ctx ): ...
663- def handle_result (self , database , cursor ): ...
675+ def handle_result (self , database : _DatabaseType , cursor ): ...
664676
665677class Delete (_WriteQuery ):
666678 def __sql__ (self , ctx ): ...
@@ -778,7 +790,7 @@ class Database(_callable_context_manager):
778790 connect_params : Incomplete
779791 def __init__ (
780792 self ,
781- database ,
793+ database : str | None ,
782794 thread_safe : bool = True ,
783795 autorollback : bool = False ,
784796 field_types = None ,
@@ -789,7 +801,7 @@ class Database(_callable_context_manager):
789801 ) -> None : ...
790802 database : Incomplete
791803 deferred : Incomplete
792- def init (self , database , ** kwargs ) -> None : ...
804+ def init (self , database : str , ** kwargs ) -> None : ...
793805 def __enter__ (self ) -> Self : ...
794806 def __exit__ (
795807 self , exc_type : type [BaseException ] | None , exc_val : BaseException | None , exc_tb : TracebackType | None
@@ -857,10 +869,23 @@ class SqliteDatabase(Database):
857869 truncate_table : bool
858870 nulls_ordering : bool
859871 def __init__ (
860- self , database , pragmas = None , regexp_function : bool = False , rank_functions : bool = False , * args , ** kwargs
872+ self ,
873+ database : str | None ,
874+ pragmas = None ,
875+ regexp_function : bool = False ,
876+ rank_functions : bool = False ,
877+ * args ,
878+ ** kwargs ,
861879 ) -> None : ...
862880 returning_clause : Incomplete
863- def init (self , database , pragmas = None , timeout : int = 5 , returning_clause = None , ** kwargs ) -> None : ...
881+ def init (
882+ self ,
883+ database : str ,
884+ pragmas = None ,
885+ timeout : int = 5 ,
886+ returning_clause = None ,
887+ ** kwargs ,
888+ ) -> None : ...
864889 def pragma (self , key , value = ..., permanent : bool = False , schema : str | None = None ): ...
865890 cache_size : Incomplete
866891 foreign_keys : Incomplete
@@ -968,7 +993,7 @@ class PostgresqlDatabase(Database):
968993 psycopg3_adapter : Incomplete
969994 def init (
970995 self ,
971- database ,
996+ database : str | None ,
972997 register_unicode : bool = True ,
973998 encoding = None ,
974999 isolation_level = None ,
@@ -1012,7 +1037,7 @@ class MySQLDatabase(Database):
10121037 safe_create_index : bool
10131038 safe_drop_index : bool
10141039 sql_mode : str
1015- def init (self , database , ** kwargs ) -> None : ...
1040+ def init (self , database : str | None , ** kwargs ) -> None : ...
10161041 def is_connection_usable (self ) -> bool : ...
10171042 def default_values_insert (self , ctx ): ...
10181043 def begin (self , isolation_level : str | None = None ) -> None : ...
@@ -1515,8 +1540,9 @@ class _SortedFieldList:
15151540class SchemaManager :
15161541 model : Incomplete
15171542 context_options : Incomplete
1518- def __init__ (self , model , database = None , ** context_options ) -> None : ...
1519-
1543+ def __init__ (
1544+ self , model , database : _DatabaseType | None = None , ** context_options
1545+ ) -> None : ...
15201546 @property
15211547 def database (self ): ...
15221548 @database .setter
@@ -1569,7 +1595,7 @@ class Metadata:
15691595 def __init__ (
15701596 self ,
15711597 model ,
1572- database = None ,
1598+ database : _DatabaseType | None = None ,
15731599 table_name = None ,
15741600 indexes = None ,
15751601 primary_key = None ,
@@ -1616,7 +1642,7 @@ class Metadata:
16161642 def get_primary_keys (self ): ...
16171643 def get_default_dict (self ): ...
16181644 def fields_to_index (self ) -> list [Incomplete ]: ...
1619- def set_database (self , database ) -> None : ...
1645+ def set_database (self , database : _DatabaseType ) -> None : ...
16201646 def set_table_name (self , table_name ) -> None : ...
16211647
16221648class SubclassAwareMetadata (Metadata ):
@@ -1644,7 +1670,9 @@ class _BoundModelsContext(_callable_context_manager):
16441670 database : Incomplete
16451671 bind_refs : Incomplete
16461672 bind_backrefs : Incomplete
1647- def __init__ (self , models , database , bind_refs , bind_backrefs ) -> None : ...
1673+ def __init__ (
1674+ self , models , database : _DatabaseType , bind_refs , bind_backrefs
1675+ ) -> None : ...
16481676 def __enter__ (self ): ...
16491677 def __exit__ (
16501678 self , exc_type : type [BaseException ] | None , exc_val : BaseException | None , exc_tb : TracebackType | None
@@ -1713,9 +1741,17 @@ class Model(metaclass=ModelBase):
17131741 def __ne__ (self , other ) -> Expression | bool : ... # type: ignore[override]
17141742 def __sql__ (self , ctx ): ...
17151743 @classmethod
1716- def bind (cls , database , bind_refs : bool = True , bind_backrefs : bool = True , _exclude = None ) -> bool : ...
1744+ def bind (
1745+ cls ,
1746+ database : _DatabaseType ,
1747+ bind_refs : bool = True ,
1748+ bind_backrefs : bool = True ,
1749+ _exclude = None ,
1750+ ) -> bool : ...
17171751 @classmethod
1718- def bind_ctx (cls , database , bind_refs : bool = True , bind_backrefs : bool = True ) -> _BoundModelsContext : ...
1752+ def bind_ctx (
1753+ cls , database : _DatabaseType , bind_refs : bool = True , bind_backrefs : bool = True
1754+ ) -> _BoundModelsContext : ...
17191755 @classmethod
17201756 def table_exists (cls ): ...
17211757 @classmethod
@@ -1774,8 +1810,8 @@ class BaseModelSelect(_ModelQueryHelper):
17741810 __sub__ = except_
17751811 def __iter__ (self ): ...
17761812 def prefetch (self , * subqueries ): ...
1777- def get (self , database = None ): ...
1778- def get_or_none (self , database = None ): ...
1813+ def get (self , database : _DatabaseType | None = None ): ...
1814+ def get_or_none (self , database : _DatabaseType | None = None ): ...
17791815 def group_by (self , * columns ) -> Self : ...
17801816
17811817class ModelCompoundSelectQuery (BaseModelSelect , CompoundSelectQuery ): # type: ignore[misc]
0 commit comments