From a2ef47660ad31781d6227eb8fe26b128c4e0acff Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Thu, 16 Jun 2022 16:34:27 +0100 Subject: [PATCH] Fix `TypeVar`s in `beautifulsoup` and `SQLAlchemy` (#8087) --- stubs/SQLAlchemy/sqlalchemy/orm/decl_api.pyi | 16 ++++++++++++++-- stubs/beautifulsoup4/bs4/element.pyi | 5 ++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/stubs/SQLAlchemy/sqlalchemy/orm/decl_api.pyi b/stubs/SQLAlchemy/sqlalchemy/orm/decl_api.pyi index dc322256b..5970c26d7 100644 --- a/stubs/SQLAlchemy/sqlalchemy/orm/decl_api.pyi +++ b/stubs/SQLAlchemy/sqlalchemy/orm/decl_api.pyi @@ -113,17 +113,29 @@ class registry: def mapped(self, cls: _ClsT) -> _ClsT: ... # Return type of the callable is a _DeclarativeBase class with the passed in class as base. # This could be better approximated with Intersection[PassedInClass, _DeclarativeBase]. + @overload + def as_declarative_base(self, *, mapper: Any | None = ...) -> Callable[[_ClsT], _ClsT | DeclarativeMeta | Any]: ... + @overload def as_declarative_base( - self, *, mapper: Any | None = ..., metaclass: _DeclarativeBaseMeta[_DeclT] = ... + self, *, mapper: Any | None = ..., metaclass: _DeclarativeBaseMeta[_DeclT] ) -> Callable[[_ClsT], _ClsT | _DeclT | Any]: ... def map_declaratively(self, cls): ... def map_imperatively(self, class_, local_table: Any | None = ..., **kw): ... +@overload def as_declarative( *, bind: Connectable | None = ..., metadata: MetaData | None = ..., class_registry: dict[str, type[Any]] | None = ..., mapper: Any | None = ..., - metaclass: _DeclarativeBaseMeta[_DeclT] = ..., +) -> Callable[[_ClsT], _ClsT | DeclarativeMeta | Any]: ... +@overload +def as_declarative( + *, + bind: Connectable | None = ..., + metadata: MetaData | None = ..., + class_registry: dict[str, type[Any]] | None = ..., + mapper: Any | None = ..., + metaclass: _DeclarativeBaseMeta[_DeclT], ) -> Callable[[_ClsT], _ClsT | _DeclT | Any]: ... diff --git a/stubs/beautifulsoup4/bs4/element.pyi b/stubs/beautifulsoup4/bs4/element.pyi index 493a8eca3..97346985f 100644 --- a/stubs/beautifulsoup4/bs4/element.pyi +++ b/stubs/beautifulsoup4/bs4/element.pyi @@ -351,4 +351,7 @@ class SoupStrainer: class ResultSet(list[_PageElementT], Generic[_PageElementT]): source: SoupStrainer - def __init__(self, source: SoupStrainer, result: Iterable[_PageElementT] = ...) -> None: ... + @overload + def __init__(self, source: SoupStrainer) -> None: ... + @overload + def __init__(self, source: SoupStrainer, result: Iterable[_PageElementT]) -> None: ...