Skip to content

Commit 436ad2c

Browse files
committed
[peewee] type all "database" arguments
1 parent cc36aca commit 436ad2c

1 file changed

Lines changed: 69 additions & 33 deletions

File tree

stubs/peewee/peewee.pyi

Lines changed: 69 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ from collections.abc import Callable, Generator, Iterable, Iterator
55
from datetime import datetime
66
from decimal import Decimal
77
from 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
99
from typing_extensions import Self, TypeIs
1010
from 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

2223
class attrdict(dict[str, _VT]):
2324
def __getattr__(self, attr: str) -> _VT: ...
@@ -192,7 +193,7 @@ class BaseTable(Source):
192193
class _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):
529530
class 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

577578
class 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

586598
class 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

594606
class 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

642654
class 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

665677
class 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:
15151540
class 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

16221648
class 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

17811817
class ModelCompoundSelectQuery(BaseModelSelect, CompoundSelectQuery): # type: ignore[misc]

0 commit comments

Comments
 (0)