Skip to content

Commit a1c28f7

Browse files
authored
Mark database parameters in Peewee as optional (#13442)
Peewee injects database arguments using a decorator whenever a model or query has a bound connection. Passing the argument is therefore not required, even for some function parameters without default values.
1 parent 2f8de52 commit a1c28f7

File tree

2 files changed

+29
-19
lines changed

2 files changed

+29
-19
lines changed

stubs/peewee/@tests/stubtest_allowlist.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@ peewee.DQ.__invert__
1111
peewee.Window.as_groups
1212
peewee.Window.as_range
1313
peewee.Window.as_rows
14+
# Wrapped with @database_required which sometimes injects the database argument
15+
peewee.BaseQuery.execute
16+
peewee.CompoundSelectQuery.exists
17+
peewee.SelectBase.count
18+
peewee.SelectBase.exists
19+
peewee.SelectBase.first
20+
peewee.SelectBase.get
21+
peewee.SelectBase.peek
22+
peewee.SelectBase.scalar
23+
peewee.SelectBase.scalars
1424

1525
# Ignore missing playhouse modules and names we don't currently provide
1626
playhouse\.\w+?

stubs/peewee/peewee.pyi

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,11 @@ class Table(_HashableSource, BaseTable): # type: ignore[misc]
190190
schema: str | None = None,
191191
alias: Incomplete | None = ...,
192192
_model: Incomplete | None = ...,
193-
_database: Incomplete | None = ...,
193+
_database: Incomplete | None = None,
194194
) -> None: ...
195195
def clone(self): ...
196-
def bind(self, database: Incomplete | None = ...): ...
197-
def bind_ctx(self, database: Incomplete | None = ...): ...
196+
def bind(self, database: Incomplete | None = None): ...
197+
def bind_ctx(self, database: Incomplete | None = None): ...
198198
def select(self, *columns): ...
199199
def insert(self, insert: Incomplete | None = ..., columns: Incomplete | None = ..., **kwargs): ...
200200
def replace(self, insert: Incomplete | None = ..., columns: Incomplete | None = ..., **kwargs): ...
@@ -517,17 +517,17 @@ class OnConflict(Node):
517517

518518
class BaseQuery(Node):
519519
default_row_type: Incomplete
520-
def __init__(self, _database: Incomplete | None = ..., **kwargs) -> None: ...
521-
def bind(self, database: Incomplete | None = ...): ...
520+
def __init__(self, _database: Incomplete | None = None, **kwargs) -> None: ...
521+
def bind(self, database: Incomplete | None = None): ...
522522
def clone(self): ...
523523
def dicts(self, as_dict: bool = ...) -> Self: ...
524524
def tuples(self, as_tuple: bool = ...) -> Self: ...
525525
def namedtuples(self, as_namedtuple: bool = ...) -> Self: ...
526526
def objects(self, constructor: Incomplete | None = ...) -> Self: ...
527527
def __sql__(self, ctx) -> None: ...
528528
def sql(self): ...
529-
def execute(self, database): ...
530-
def iterator(self, database: Incomplete | None = ...): ...
529+
def execute(self, database: Incomplete | None = None): ...
530+
def iterator(self, database: Incomplete | None = None): ...
531531
def __iter__(self): ...
532532
def __getitem__(self, value): ...
533533
def __len__(self) -> int: ...
@@ -571,20 +571,20 @@ class SelectQuery(Query):
571571
def select_from(self, *columns): ...
572572

573573
class SelectBase(_HashableSource, Source, SelectQuery): # type: ignore[misc]
574-
def peek(self, database, n: int = ...): ...
575-
def first(self, database, n: int = ...): ...
576-
def scalar(self, database, as_tuple: bool = ..., as_dict: bool = ...): ...
577-
def scalars(self, database) -> Generator[Incomplete, None, None]: ...
578-
def count(self, database, clear_limit: bool = ...): ...
579-
def exists(self, database): ...
580-
def get(self, database): ...
574+
def peek(self, database: Incomplete | None = None, n: int = ...): ...
575+
def first(self, database: Incomplete | None = None, n: int = ...): ...
576+
def scalar(self, database: Incomplete | None = None, as_tuple: bool = ..., as_dict: bool = ...): ...
577+
def scalars(self, database: Incomplete | None = None) -> Generator[Incomplete, None, None]: ...
578+
def count(self, database: Incomplete | None = None, clear_limit: bool = ...): ...
579+
def exists(self, database: Incomplete | None = None): ...
580+
def get(self, database: Incomplete | None = None): ...
581581

582582
class CompoundSelectQuery(SelectBase):
583583
lhs: Incomplete
584584
op: Incomplete
585585
rhs: Incomplete
586586
def __init__(self, lhs, op, rhs) -> None: ...
587-
def exists(self, database): ...
587+
def exists(self, database: Incomplete | None = None): ...
588588
def __sql__(self, ctx): ...
589589

590590
class Select(SelectBase):
@@ -1495,7 +1495,7 @@ class _SortedFieldList:
14951495
class SchemaManager:
14961496
model: Incomplete
14971497
context_options: Incomplete
1498-
def __init__(self, model, database: Incomplete | None = ..., **context_options) -> None: ...
1498+
def __init__(self, model, database: Incomplete | None = None, **context_options) -> None: ...
14991499
@property
15001500
def database(self): ...
15011501
@database.setter
@@ -1546,7 +1546,7 @@ class Metadata:
15461546
def __init__(
15471547
self,
15481548
model,
1549-
database: Incomplete | None = ...,
1549+
database: Incomplete | None = None,
15501550
table_name: Incomplete | None = ...,
15511551
indexes: Incomplete | None = ...,
15521552
primary_key: Incomplete | None = ...,
@@ -1744,8 +1744,8 @@ class BaseModelSelect(_ModelQueryHelper):
17441744
__sub__: Incomplete
17451745
def __iter__(self): ...
17461746
def prefetch(self, *subqueries): ...
1747-
def get(self, database: Incomplete | None = ...): ...
1748-
def get_or_none(self, database: Incomplete | None = ...): ...
1747+
def get(self, database: Incomplete | None = None): ...
1748+
def get_or_none(self, database: Incomplete | None = None): ...
17491749
def group_by(self, *columns) -> Self: ...
17501750

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

0 commit comments

Comments
 (0)