From: Yurii Karabas <1998uriyyo@gmail.com> Date: Sat, 16 Dec 2023 21:12:29 +0000 (+0200) Subject: Update type annotations X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=638b59661ed3f17b5eced125ca85a9bb8d6180bf;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Update type annotations --- diff --git a/lib/sqlalchemy/ext/asyncio/engine.py b/lib/sqlalchemy/ext/asyncio/engine.py index e27df5178d..5e2a1ce1ac 100644 --- a/lib/sqlalchemy/ext/asyncio/engine.py +++ b/lib/sqlalchemy/ext/asyncio/engine.py @@ -40,6 +40,7 @@ from ...engine.base import NestedTransaction from ...engine.base import Transaction from ...exc import ArgumentError from ...util.concurrency import greenlet_spawn +from ...util.typing import TupleAny from ...util.typing import TypeVarTuple from ...util.typing import Unpack @@ -530,7 +531,7 @@ class AsyncConnection( parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, - ) -> GeneratorStartableContext[AsyncResult[Any]]: + ) -> GeneratorStartableContext[AsyncResult[Unpack[TupleAny]]]: ... @asyncstartablecontext @@ -540,7 +541,7 @@ class AsyncConnection( parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, - ) -> AsyncIterator[AsyncResult[Any]]: + ) -> AsyncIterator[AsyncResult[Unpack[TupleAny]]]: """Execute a statement and return an awaitable yielding a :class:`_asyncio.AsyncResult` object. @@ -612,7 +613,7 @@ class AsyncConnection( parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, - ) -> CursorResult[Any]: + ) -> CursorResult[Unpack[TupleAny]]: ... async def execute( @@ -621,7 +622,7 @@ class AsyncConnection( parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, - ) -> CursorResult[Any]: + ) -> CursorResult[Unpack[TupleAny]]: r"""Executes a SQL statement construct and return a buffered :class:`_engine.Result`. diff --git a/lib/sqlalchemy/ext/asyncio/scoping.py b/lib/sqlalchemy/ext/asyncio/scoping.py index 58e6aa4e6a..396667ff00 100644 --- a/lib/sqlalchemy/ext/asyncio/scoping.py +++ b/lib/sqlalchemy/ext/asyncio/scoping.py @@ -553,7 +553,7 @@ class async_scoped_session(Generic[_AS]): bind_arguments: Optional[_BindArguments] = None, _parent_execute_state: Optional[Any] = None, _add_event: Optional[Any] = None, - ) -> CursorResult[Any]: + ) -> CursorResult[Unpack[TupleAny]]: ... @overload @@ -566,7 +566,7 @@ class async_scoped_session(Generic[_AS]): bind_arguments: Optional[_BindArguments] = None, _parent_execute_state: Optional[Any] = None, _add_event: Optional[Any] = None, - ) -> Result[Unpack[Tuple[Any, ...]]]: + ) -> Result[Unpack[TupleAny]]: ... async def execute( @@ -577,7 +577,7 @@ class async_scoped_session(Generic[_AS]): execution_options: OrmExecuteOptionsParameter = util.EMPTY_DICT, bind_arguments: Optional[_BindArguments] = None, **kw: Any, - ) -> Result[Unpack[Tuple[Any, ...]]]: + ) -> Result[Unpack[TupleAny]]: r"""Execute a statement and return a buffered :class:`_engine.Result` object. @@ -1229,7 +1229,7 @@ class async_scoped_session(Generic[_AS]): execution_options: OrmExecuteOptionsParameter = util.EMPTY_DICT, bind_arguments: Optional[_BindArguments] = None, **kw: Any, - ) -> AsyncResult[Any]: + ) -> AsyncResult[Unpack[TupleAny]]: ... async def stream( @@ -1240,7 +1240,7 @@ class async_scoped_session(Generic[_AS]): execution_options: OrmExecuteOptionsParameter = util.EMPTY_DICT, bind_arguments: Optional[_BindArguments] = None, **kw: Any, - ) -> AsyncResult[Any]: + ) -> AsyncResult[Unpack[TupleAny]]: r"""Execute a statement and return a streaming :class:`_asyncio.AsyncResult` object. diff --git a/lib/sqlalchemy/ext/asyncio/session.py b/lib/sqlalchemy/ext/asyncio/session.py index aa2fcbe419..af1706c53e 100644 --- a/lib/sqlalchemy/ext/asyncio/session.py +++ b/lib/sqlalchemy/ext/asyncio/session.py @@ -415,7 +415,7 @@ class AsyncSession(ReversibleProxy[Session]): bind_arguments: Optional[_BindArguments] = None, _parent_execute_state: Optional[Any] = None, _add_event: Optional[Any] = None, - ) -> CursorResult[Any]: + ) -> CursorResult[Unpack[TupleAny]]: ... @overload @@ -428,7 +428,7 @@ class AsyncSession(ReversibleProxy[Session]): bind_arguments: Optional[_BindArguments] = None, _parent_execute_state: Optional[Any] = None, _add_event: Optional[Any] = None, - ) -> Result[Unpack[Tuple[Any, ...]]]: + ) -> Result[Unpack[TupleAny]]: ... async def execute( @@ -439,7 +439,7 @@ class AsyncSession(ReversibleProxy[Session]): execution_options: OrmExecuteOptionsParameter = util.EMPTY_DICT, bind_arguments: Optional[_BindArguments] = None, **kw: Any, - ) -> Result[Unpack[Tuple[Any, ...]]]: + ) -> Result[Unpack[TupleAny]]: """Execute a statement and return a buffered :class:`_engine.Result` object. @@ -671,7 +671,7 @@ class AsyncSession(ReversibleProxy[Session]): execution_options: OrmExecuteOptionsParameter = util.EMPTY_DICT, bind_arguments: Optional[_BindArguments] = None, **kw: Any, - ) -> AsyncResult[Any]: + ) -> AsyncResult[Unpack[TupleAny]]: ... async def stream( @@ -682,7 +682,7 @@ class AsyncSession(ReversibleProxy[Session]): execution_options: OrmExecuteOptionsParameter = util.EMPTY_DICT, bind_arguments: Optional[_BindArguments] = None, **kw: Any, - ) -> AsyncResult[Any]: + ) -> AsyncResult[Unpack[TupleAny]]: """Execute a statement and return a streaming :class:`_asyncio.AsyncResult` object. diff --git a/lib/sqlalchemy/orm/scoping.py b/lib/sqlalchemy/orm/scoping.py index 519b1e7e11..75171efecd 100644 --- a/lib/sqlalchemy/orm/scoping.py +++ b/lib/sqlalchemy/orm/scoping.py @@ -1667,7 +1667,10 @@ class scoped_session(Generic[_S]): __ent6: _TCCA[_T6], __ent7: _TCCA[_T7], /, - ) -> RowReturningQuery[_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7]: + *entities: _ColumnsClauseArgument[Any], + ) -> RowReturningQuery[ + _T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, Unpack[TupleAny] + ]: ... # END OVERLOADED FUNCTIONS self.query diff --git a/test/typing/plain_files/ext/asyncio/engines.py b/test/typing/plain_files/ext/asyncio/engines.py index 598d319a77..ae7880f584 100644 --- a/test/typing/plain_files/ext/asyncio/engines.py +++ b/test/typing/plain_files/ext/asyncio/engines.py @@ -14,20 +14,20 @@ async def asyncio() -> None: result = await conn.execute(text("select * from table")) - # EXPECTED_TYPE: CursorResult[Any] + # EXPECTED_TYPE: CursorResult[Unpack[.*tuple[Any, ...]]] reveal_type(result) # stream with direct await async_result = await conn.stream(text("select * from table")) - # EXPECTED_TYPE: AsyncResult[Any] + # EXPECTED_TYPE: AsyncResult[Unpack[.*tuple[Any, ...]]] reveal_type(async_result) # stream with context manager async with conn.stream( text("select * from table") ) as ctx_async_result: - # EXPECTED_TYPE: AsyncResult[Any] + # EXPECTED_TYPE: AsyncResult[Unpack[.*tuple[Any, ...]]] reveal_type(ctx_async_result) # stream_scalars with direct await @@ -51,5 +51,5 @@ async def asyncio() -> None: result = await conn.execute(text("select * from table")) - # EXPECTED_TYPE: CursorResult[Any] + # EXPECTED_TYPE: CursorResult[Unpack[.*tuple[Any, ...]]] reveal_type(result)