From 847538f88a4f9b7ea9a8e9cb3706b37313d7177c Mon Sep 17 00:00:00 2001 From: donbarbos Date: Mon, 24 Aug 2026 11:58:17 +0400 Subject: [PATCH] [peewee] Update to 4.4.0 Closes: #16290 --- stubs/peewee/METADATA.toml | 2 +- stubs/peewee/peewee.pyi | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/stubs/peewee/METADATA.toml b/stubs/peewee/METADATA.toml index c273586ad9dc..95601b145da8 100644 --- a/stubs/peewee/METADATA.toml +++ b/stubs/peewee/METADATA.toml @@ -1,4 +1,4 @@ -version = "4.3.0" +version = "4.4.0" upstream-repository = "https://github.com/coleifer/peewee" # We're not providing stubs for all playhouse modules right now # https://github.com/python/typeshed/pull/11731#issuecomment-2065729058 diff --git a/stubs/peewee/peewee.pyi b/stubs/peewee/peewee.pyi index 10a6657b00ab..29fa0abbe76a 100644 --- a/stubs/peewee/peewee.pyi +++ b/stubs/peewee/peewee.pyi @@ -14,6 +14,7 @@ def callable_(c: object) -> TypeIs[Callable[..., object]]: ... multi_types: tuple[type[Incomplete], ...] _T = TypeVar("_T") +_R = TypeVar("_R") _VT = TypeVar("_VT") _F = TypeVar("_F", bound=Callable[..., Any]) _Model: TypeAlias = Model @@ -54,6 +55,11 @@ class _FKKwargs(_FieldKwargs, total=False): related_name: str | Callable[[Field[Any]], str] | None rel_model: type[Model] | None +class classmethod_only(Generic[_T, _R]): + fn: Callable[[type[_T]], _R] + def __init__(self, fn: Callable[[type[_T]], _R]) -> None: ... + def __get__(self, instance: None, instance_type: type[_T] | None = None) -> Callable[[], _R]: ... + class attrdict(dict[str, _VT]): def __getattr__(self, attr: str) -> _VT: ... def __setattr__(self, attr: str, value: _VT) -> None: ... @@ -980,8 +986,6 @@ class _BasePsycopgAdapter: @overload def isolation_level_str(self, isolation_level: _T) -> _T: ... - def server_side_cursor(self, conn): ... - class Psycopg2Adapter(_BasePsycopgAdapter): json_type: Incomplete jsonb_type: Incomplete @@ -994,6 +998,7 @@ class Psycopg2Adapter(_BasePsycopgAdapter): def is_connection_usable(self, conn) -> bool: ... def is_connection_reusable(self, conn) -> bool: ... def is_connection_closed(self, conn) -> bool: ... + def server_side_cursor(self, conn): ... class Psycopg3Adapter(_BasePsycopgAdapter): json_type: Incomplete @@ -1007,6 +1012,7 @@ class Psycopg3Adapter(_BasePsycopgAdapter): def is_connection_usable(self, conn) -> bool: ... def is_connection_reusable(self, conn) -> bool: ... def is_connection_closed(self, conn) -> bool: ... + def server_side_cursor(self, conn): ... class PostgresqlDatabase(Database): field_types: Incomplete @@ -1029,6 +1035,8 @@ class PostgresqlDatabase(Database): prefer_psycopg3: bool = False, **kwargs, ) -> None: ... + @property + def index_value_literals(self) -> bool: ... # type: ignore[override] def is_connection_usable(self) -> bool: ... def begin(self, isolation_level: str | None = None) -> None: ... def get_tables(self, schema: str | None = None) -> list[str]: ... @@ -1816,6 +1824,7 @@ class Metadata: def fields_to_index(self) -> list[Incomplete]: ... def set_database(self, database: _DatabaseType) -> None: ... def set_table_name(self, table_name) -> None: ... + def get_database_instance(self) -> _DatabaseType | None: ... class SubclassAwareMetadata(Metadata): models: Incomplete @@ -1872,8 +1881,7 @@ class Model(metaclass=ModelBase): def replace_many(cls, rows, fields=None): ... @classmethod def raw(cls, sql, *params) -> ModelRaw: ... - @classmethod - def delete(cls) -> ModelDelete: ... + delete: classmethod_only[Self, ModelDelete] @classmethod def create(cls, **query) -> Self: ... @classmethod