From 859dda8f0b2874fcf7f080d15411336047b89a64 Mon Sep 17 00:00:00 2001 From: Federico Caselli Date: Wed, 24 Apr 2024 22:30:21 +0200 Subject: [PATCH] Fix typing to support mypy 1.10 Change-Id: I77c0a04331a99c7be77c174721431a5601475dc3 --- lib/sqlalchemy/ext/hybrid.py | 2 +- lib/sqlalchemy/sql/compiler.py | 2 +- lib/sqlalchemy/util/langhelpers.py | 6 +++--- lib/sqlalchemy/util/typing.py | 2 +- test/typing/plain_files/orm/typed_queries.py | 8 ++++---- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/sqlalchemy/ext/hybrid.py b/lib/sqlalchemy/ext/hybrid.py index de8cec8fdb..b61f241502 100644 --- a/lib/sqlalchemy/ext/hybrid.py +++ b/lib/sqlalchemy/ext/hybrid.py @@ -1096,7 +1096,7 @@ class hybrid_property(interfaces.InspectionAttrInfo, ORMDescriptor[_T]): self.expr = _unwrap_classmethod(expr) self.custom_comparator = _unwrap_classmethod(custom_comparator) self.update_expr = _unwrap_classmethod(update_expr) - util.update_wrapper(self, fget) + util.update_wrapper(self, fget) # type: ignore[arg-type] @overload def __get__(self, instance: Any, owner: Literal[None]) -> Self: ... diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index dc551b4fb7..785d2e9350 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -7292,7 +7292,7 @@ class StrSQLTypeCompiler(GenericTypeCompiler): class _SchemaForObjectCallable(Protocol): - def __call__(self, obj: Any) -> str: ... + def __call__(self, obj: Any, /) -> str: ... class _BindNameForColProtocol(Protocol): diff --git a/lib/sqlalchemy/util/langhelpers.py b/lib/sqlalchemy/util/langhelpers.py index f73a579744..fe3bd16840 100644 --- a/lib/sqlalchemy/util/langhelpers.py +++ b/lib/sqlalchemy/util/langhelpers.py @@ -306,10 +306,10 @@ def decorator(target: Callable[..., Any]) -> Callable[[_Fn], _Fn]: ) decorated.__defaults__ = getattr(fn, "__func__", fn).__defaults__ - decorated.__wrapped__ = fn # type: ignore - return cast(_Fn, update_wrapper(decorated, fn)) + decorated.__wrapped__ = fn # type: ignore[attr-defined] + return update_wrapper(decorated, fn) # type: ignore[return-value] - return update_wrapper(decorate, target) + return update_wrapper(decorate, target) # type: ignore[return-value] def _update_argspec_defaults_into_env(spec, env): diff --git a/lib/sqlalchemy/util/typing.py b/lib/sqlalchemy/util/typing.py index 798da06d65..cfc3a26a97 100644 --- a/lib/sqlalchemy/util/typing.py +++ b/lib/sqlalchemy/util/typing.py @@ -339,7 +339,7 @@ def flatten_newtype(type_: NewType) -> Type[Any]: super_type = type_.__supertype__ while is_newtype(super_type): super_type = super_type.__supertype__ - return super_type + return super_type # type: ignore[return-value] def is_fwd_ref( diff --git a/test/typing/plain_files/orm/typed_queries.py b/test/typing/plain_files/orm/typed_queries.py index 47168f474b..80f2c7d01e 100644 --- a/test/typing/plain_files/orm/typed_queries.py +++ b/test/typing/plain_files/orm/typed_queries.py @@ -97,7 +97,7 @@ def t_select_3() -> None: # awkwardnesses that aren't really worth it ua(id=1, name="foo") - # EXPECTED_TYPE: Type[User] + # EXPECTED_TYPE: type[User] reveal_type(ua) stmt = select(ua.id, ua.name).filter(User.id == 5) @@ -529,13 +529,13 @@ def t_aliased_fromclause() -> None: a4 = aliased(user_table) - # EXPECTED_TYPE: Type[User] + # EXPECTED_TYPE: type[User] reveal_type(a1) - # EXPECTED_TYPE: Type[User] + # EXPECTED_TYPE: type[User] reveal_type(a2) - # EXPECTED_TYPE: Type[User] + # EXPECTED_TYPE: type[User] reveal_type(a3) # EXPECTED_TYPE: FromClause -- 2.47.2