Skip to content

Commit bc71e0c

Browse files
committed
[peewee] Model.select() type contains the model being selected
[pre-commit.ci] auto fixes from pre-commit.com hooks
1 parent 3c62217 commit bc71e0c

1 file changed

Lines changed: 14 additions & 13 deletions

File tree

stubs/peewee/peewee.pyi

Lines changed: 14 additions & 13 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, Generic, Literal, NamedTuple, NoReturn, 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+
_TModel = TypeVar("_TModel", bound=Model)
2122

2223
class attrdict(dict[str, _VT]):
2324
def __getattr__(self, attr: str) -> _VT: ...
@@ -1658,9 +1659,9 @@ class Model(metaclass=ModelBase):
16581659
@classmethod
16591660
def validate_model(cls) -> None: ...
16601661
@classmethod
1661-
def alias(cls, alias=None) -> ModelAlias: ...
1662+
def alias(cls, alias=None) -> ModelAlias[Self]: ...
16621663
@classmethod
1663-
def select(cls, *fields) -> ModelSelect: ...
1664+
def select(cls, *fields) -> ModelSelect[Self]: ...
16641665
@classmethod
16651666
def update(cls, data=None, /, **update) -> ModelUpdate: ...
16661667
@classmethod
@@ -1684,7 +1685,7 @@ class Model(metaclass=ModelBase):
16841685
@classmethod
16851686
def bulk_update(cls, model_list, fields, batch_size=None): ...
16861687
@classmethod
1687-
def noop(cls) -> NoopModelSelect: ...
1688+
def noop(cls) -> NoopModelSelect[Self]: ...
16881689
@classmethod
16891690
def get(cls, *query, **filters): ...
16901691
@classmethod
@@ -1729,12 +1730,12 @@ class Model(metaclass=ModelBase):
17291730
@classmethod
17301731
def add_index(cls, *fields, **kwargs) -> None: ...
17311732

1732-
class ModelAlias(Node):
1733-
def __init__(self, model, alias=None) -> None: ...
1733+
class ModelAlias(Node, Generic[_TModel]):
1734+
def __init__(self, model: type[_TModel], alias=None) -> None: ...
17341735
def __getattr__(self, attr: str): ...
17351736
def __setattr__(self, attr: str, value) -> None: ...
17361737
def get_field_aliases(self) -> list[Incomplete]: ...
1737-
def select(self, *selection) -> ModelSelect: ...
1738+
def select(self, *selection) -> ModelSelect[_TModel]: ...
17381739
def __call__(self, **kwargs): ...
17391740
def __sql__(self, ctx): ...
17401741

@@ -1782,11 +1783,11 @@ class ModelCompoundSelectQuery(BaseModelSelect, CompoundSelectQuery): # type: i
17821783
model: Incomplete
17831784
def __init__(self, model, *args, **kwargs) -> None: ...
17841785

1785-
class ModelSelect(BaseModelSelect, Select): # type: ignore[misc]
1786-
model: Incomplete
1787-
def __init__(self, model, fields_or_models, is_default: bool = False) -> None: ...
1786+
class ModelSelect(BaseModelSelect, Select, Generic[_TModel]): # type: ignore[misc]
1787+
model: type[_TModel]
1788+
def __init__(self, model: type[_TModel], fields_or_models, is_default: bool = False) -> None: ...
17881789
def clone(self) -> Self: ...
1789-
def select(self, *fields_or_models): ...
1790+
def select(self, *fields_or_models) -> ModelSelect[_TModel]: ...
17901791
def select_extend(self, *columns): ...
17911792
def switch(self, ctx=None) -> Self: ...
17921793
def join(self, dest, join_type="INNER JOIN", on=None, src=None, attr=None) -> Self: ... # type: ignore[override]
@@ -1798,7 +1799,7 @@ class ModelSelect(BaseModelSelect, Select): # type: ignore[misc]
17981799
def create_table(self, name, safe: bool = True, **meta): ...
17991800
def __sql_selection__(self, ctx, is_subquery: bool = False): ...
18001801

1801-
class NoopModelSelect(ModelSelect):
1802+
class NoopModelSelect(ModelSelect[_TModel]):
18021803
def __sql__(self, ctx): ...
18031804

18041805
class _ModelWriteQueryHelper(_ModelQueryHelper):
@@ -1817,7 +1818,7 @@ class ModelInsert(_ModelWriteQueryHelper, Insert): # type: ignore[misc]
18171818

18181819
class ModelDelete(_ModelWriteQueryHelper, Delete): ... # type: ignore[misc]
18191820

1820-
class ManyToManyQuery(ModelSelect):
1821+
class ManyToManyQuery(ModelSelect[_TModel]):
18211822
def __init__(self, instance, accessor, rel, *args, **kwargs) -> None: ...
18221823
def add(self, value, clear_existing: bool = False) -> None: ...
18231824
def remove(self, value): ...

0 commit comments

Comments
 (0)