From: Yurii Karabas <1998uriyyo@gmail.com> Date: Fri, 1 Dec 2023 09:26:52 +0000 (+0200) Subject: Update functions.py X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=782c72cdee3860635252b6dc098c4eedf0677a67;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Update functions.py --- diff --git a/lib/sqlalchemy/sql/functions.py b/lib/sqlalchemy/sql/functions.py index c21384782f..ce574b06e9 100644 --- a/lib/sqlalchemy/sql/functions.py +++ b/lib/sqlalchemy/sql/functions.py @@ -62,7 +62,6 @@ from .sqltypes import TableValueType from .type_api import TypeEngine from .visitors import InternalTraversal from .. import util -from ..util.typing import Unpack if TYPE_CHECKING: @@ -703,7 +702,7 @@ class FunctionElement(Executable, ColumnElement[_T], FromClause, Generative): joins_implicitly=joins_implicitly, ) - def select(self) -> Select[Unpack[Tuple[Any, ...]]]: + def select(self) -> Select[_T]: """Produce a :func:`_expression.select` construct against this :class:`.FunctionElement`. @@ -712,7 +711,7 @@ class FunctionElement(Executable, ColumnElement[_T], FromClause, Generative): s = select(function_element) """ - s: Select[Unpack[Tuple[Any, ...]]] = Select(self) + s: Select[_T] = Select(self) if self._execution_options: s = s.execution_options(**self._execution_options) return s diff --git a/test/typing/plain_files/sql/functions.py b/test/typing/plain_files/sql/functions.py index 6a345fcf6e..726c24b3f1 100644 --- a/test/typing/plain_files/sql/functions.py +++ b/test/typing/plain_files/sql/functions.py @@ -14,139 +14,139 @@ from sqlalchemy import String stmt1 = select(func.aggregate_strings(column("x", String), ",")) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*str\]\] +# EXPECTED_RE_TYPE: .*Select\[.*str\] reveal_type(stmt1) stmt2 = select(func.char_length(column("x"))) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*int\]\] +# EXPECTED_RE_TYPE: .*Select\[.*int\] reveal_type(stmt2) stmt3 = select(func.coalesce(column("x", Integer))) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*int\]\] +# EXPECTED_RE_TYPE: .*Select\[.*int\] reveal_type(stmt3) stmt4 = select(func.concat()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*str\]\] +# EXPECTED_RE_TYPE: .*Select\[.*str\] reveal_type(stmt4) stmt5 = select(func.count(column("x"))) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*int\]\] +# EXPECTED_RE_TYPE: .*Select\[.*int\] reveal_type(stmt5) stmt6 = select(func.cume_dist()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*Decimal\]\] +# EXPECTED_RE_TYPE: .*Select\[.*Decimal\] reveal_type(stmt6) stmt7 = select(func.current_date()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*date\]\] +# EXPECTED_RE_TYPE: .*Select\[.*date\] reveal_type(stmt7) stmt8 = select(func.current_time()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*time\]\] +# EXPECTED_RE_TYPE: .*Select\[.*time\] reveal_type(stmt8) stmt9 = select(func.current_timestamp()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*datetime\]\] +# EXPECTED_RE_TYPE: .*Select\[.*datetime\] reveal_type(stmt9) stmt10 = select(func.current_user()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*str\]\] +# EXPECTED_RE_TYPE: .*Select\[.*str\] reveal_type(stmt10) stmt11 = select(func.dense_rank()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*int\]\] +# EXPECTED_RE_TYPE: .*Select\[.*int\] reveal_type(stmt11) stmt12 = select(func.localtime()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*datetime\]\] +# EXPECTED_RE_TYPE: .*Select\[.*datetime\] reveal_type(stmt12) stmt13 = select(func.localtimestamp()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*datetime\]\] +# EXPECTED_RE_TYPE: .*Select\[.*datetime\] reveal_type(stmt13) stmt14 = select(func.max(column("x", Integer))) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*int\]\] +# EXPECTED_RE_TYPE: .*Select\[.*int\] reveal_type(stmt14) stmt15 = select(func.min(column("x", Integer))) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*int\]\] +# EXPECTED_RE_TYPE: .*Select\[.*int\] reveal_type(stmt15) stmt16 = select(func.next_value(Sequence("x_seq"))) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*int\]\] +# EXPECTED_RE_TYPE: .*Select\[.*int\] reveal_type(stmt16) stmt17 = select(func.now()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*datetime\]\] +# EXPECTED_RE_TYPE: .*Select\[.*datetime\] reveal_type(stmt17) stmt18 = select(func.percent_rank()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*Decimal\]\] +# EXPECTED_RE_TYPE: .*Select\[.*Decimal\] reveal_type(stmt18) stmt19 = select(func.rank()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*int\]\] +# EXPECTED_RE_TYPE: .*Select\[.*int\] reveal_type(stmt19) stmt20 = select(func.session_user()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*str\]\] +# EXPECTED_RE_TYPE: .*Select\[.*str\] reveal_type(stmt20) stmt21 = select(func.sum(column("x", Integer))) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*int\]\] +# EXPECTED_RE_TYPE: .*Select\[.*int\] reveal_type(stmt21) stmt22 = select(func.sysdate()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*datetime\]\] +# EXPECTED_RE_TYPE: .*Select\[.*datetime\] reveal_type(stmt22) stmt23 = select(func.user()) -# EXPECTED_RE_TYPE: .*Select\[Tuple\[.*str\]\] +# EXPECTED_RE_TYPE: .*Select\[.*str\] reveal_type(stmt23) # END GENERATED FUNCTION TYPING TESTS