From: Yurii Karabas <1998uriyyo@gmail.com> Date: Tue, 16 Jan 2024 18:59:12 +0000 (+0200) Subject: merge with upstream/main X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b80b6dede388ea9da4f0ef049ff8127ba1318e3a;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git merge with upstream/main --- b80b6dede388ea9da4f0ef049ff8127ba1318e3a diff --cc lib/sqlalchemy/engine/base.py index cd71fe2639,dcce3ed342..2706bbe0ee --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@@ -1499,10 -1495,10 +1499,10 @@@ class Connection(ConnectionEventsTarget ddl: ExecutableDDLElement, distilled_parameters: _CoreMultiExecuteParams, execution_options: CoreExecuteOptionsParameter, - ) -> CursorResult[Any]: + ) -> CursorResult[Unpack[TupleAny]]: """Execute a schema.DDL object.""" - execution_options = ddl._execution_options.merge_with( + exec_opts = ddl._execution_options.merge_with( self._execution_options, execution_options ) diff --cc lib/sqlalchemy/engine/default.py index cb9a6f2dfd,213a047711..3ef7f57902 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@@ -64,11 -65,7 +65,10 @@@ from ..sql.compiler import DDLCompile from ..sql.compiler import InsertmanyvaluesSentinelOpts from ..sql.compiler import SQLCompiler from ..sql.elements import quoted_name - from ..util.typing import Final from ..util.typing import Literal +from ..util.typing import TupleAny +from ..util.typing import Unpack + if typing.TYPE_CHECKING: from types import ModuleType diff --cc lib/sqlalchemy/ext/horizontal_shard.py index 2d0c884943,24060a062e..e6d1b0406f --- a/lib/sqlalchemy/ext/horizontal_shard.py +++ b/lib/sqlalchemy/ext/horizontal_shard.py @@@ -48,11 -49,7 +49,10 @@@ from ..orm.query import Quer from ..orm.session import _BindArguments from ..orm.session import _PKIdentityArgument from ..orm.session import Session - from ..util.typing import Protocol from ..util.typing import Self +from ..util.typing import TypeVarTuple +from ..util.typing import Unpack + if TYPE_CHECKING: from ..engine.base import Connection diff --cc lib/sqlalchemy/orm/interfaces.py index 92676e1f73,5cab1d348c..dd9e558cd3 --- a/lib/sqlalchemy/orm/interfaces.py +++ b/lib/sqlalchemy/orm/interfaces.py @@@ -71,10 -72,6 +72,9 @@@ from ..sql.schema import Colum from ..sql.type_api import TypeEngine from ..util import warn_deprecated from ..util.typing import RODescriptorReference +from ..util.typing import TupleAny - from ..util.typing import TypedDict +from ..util.typing import Unpack + if typing.TYPE_CHECKING: from ._typing import _EntityType diff --cc lib/sqlalchemy/orm/scoping.py index 75171efecd,ead18d1862..2e87f41879 --- a/lib/sqlalchemy/orm/scoping.py +++ b/lib/sqlalchemy/orm/scoping.py @@@ -31,10 -32,6 +32,9 @@@ from ..util import ScopedRegistr from ..util import ThreadLocalRegistry from ..util import warn from ..util import warn_deprecated - from ..util.typing import Protocol +from ..util.typing import TupleAny +from ..util.typing import TypeVarTuple +from ..util.typing import Unpack if TYPE_CHECKING: from ._typing import _EntityType diff --cc lib/sqlalchemy/orm/session.py index eb45fb9dbb,26c907446e..4315ac7f30 --- a/lib/sqlalchemy/orm/session.py +++ b/lib/sqlalchemy/orm/session.py @@@ -90,11 -91,6 +91,10 @@@ from ..sql.selectable import ForUpdateA from ..sql.selectable import LABEL_STYLE_TABLENAME_PLUS_COL from ..util import IdentitySet from ..util.typing import Literal - from ..util.typing import Protocol +from ..util.typing import TupleAny +from ..util.typing import TypeVarTuple +from ..util.typing import Unpack + if typing.TYPE_CHECKING: from ._typing import _EntityType diff --cc lib/sqlalchemy/orm/state.py index 83f85cda27,786b55e149..234a028a15 --- a/lib/sqlalchemy/orm/state.py +++ b/lib/sqlalchemy/orm/state.py @@@ -45,9 -46,6 +46,8 @@@ from .. import exc as sa_ex from .. import inspection from .. import util from ..util.typing import Literal - from ..util.typing import Protocol +from ..util.typing import TupleAny +from ..util.typing import Unpack if TYPE_CHECKING: from ._typing import _IdentityKeyType diff --cc lib/sqlalchemy/orm/util.py index d834435c47,89d5ad491c..4309cb119e --- a/lib/sqlalchemy/orm/util.py +++ b/lib/sqlalchemy/orm/util.py @@@ -91,10 -92,7 +92,9 @@@ from ..util.typing import from ..util.typing import eval_name_only as _eval_name_only from ..util.typing import is_origin_of_cls from ..util.typing import Literal - from ..util.typing import Protocol +from ..util.typing import TupleAny from ..util.typing import typing_get_origin +from ..util.typing import Unpack if typing.TYPE_CHECKING: from ._typing import _EntityType diff --cc lib/sqlalchemy/sql/_typing.py index bb0ac7dbcf,f5f6fb1775..5e40f19cce --- a/lib/sqlalchemy/sql/_typing.py +++ b/lib/sqlalchemy/sql/_typing.py @@@ -16,7 -17,9 +17,8 @@@ from typing import Mappin from typing import NoReturn from typing import Optional from typing import overload + from typing import Protocol from typing import Set -from typing import Tuple from typing import Type from typing import TYPE_CHECKING from typing import TypeVar @@@ -27,10 -30,7 +29,9 @@@ from .. import ex from .. import util from ..inspection import Inspectable from ..util.typing import Literal - from ..util.typing import Protocol +from ..util.typing import TupleAny from ..util.typing import TypeAlias +from ..util.typing import Unpack if TYPE_CHECKING: from datetime import date diff --cc lib/sqlalchemy/sql/compiler.py index 49fb4eb231,2d6f330631..ea19e9a86d --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@@ -86,10 -88,6 +88,8 @@@ from .. import ex from .. import util from ..util import FastIntFlag from ..util.typing import Literal - from ..util.typing import Protocol +from ..util.typing import TupleAny - from ..util.typing import TypedDict +from ..util.typing import Unpack if typing.TYPE_CHECKING: from .annotation import _AnnotationDict diff --cc lib/sqlalchemy/sql/selectable.py index 3d070e968f,7e3c7150cf..e16cd61b8c --- a/lib/sqlalchemy/sql/selectable.py +++ b/lib/sqlalchemy/sql/selectable.py @@@ -97,12 -99,7 +98,11 @@@ from .. import ex from .. import util from ..util import HasMemoized_ro_memoized_attribute from ..util.typing import Literal - from ..util.typing import Protocol from ..util.typing import Self +from ..util.typing import TupleAny +from ..util.typing import TypeVarTuple +from ..util.typing import Unpack + and_ = BooleanClauseList.and_ diff --cc lib/sqlalchemy/sql/util.py index 9df7b7cabd,ac8b30eb31..53e5726722 --- a/lib/sqlalchemy/sql/util.py +++ b/lib/sqlalchemy/sql/util.py @@@ -69,8 -70,6 +70,7 @@@ from .visitors import _E from .. import exc from .. import util from ..util.typing import Literal - from ..util.typing import Protocol +from ..util.typing import Unpack if typing.TYPE_CHECKING: from ._typing import _EquivalentColumnMap diff --cc lib/sqlalchemy/util/typing.py index 996c53eb13,ce3aa9fe32..a3e9397640 --- a/lib/sqlalchemy/util/typing.py +++ b/lib/sqlalchemy/util/typing.py @@@ -39,22 -40,17 +40,20 @@@ if True: # zimports removes the tailin from typing_extensions import ( dataclass_transform as dataclass_transform, # 3.11, ) - from typing_extensions import Final as Final # 3.8 - from typing_extensions import final as final # 3.8 from typing_extensions import get_args as get_args # 3.10 from typing_extensions import get_origin as get_origin # 3.10 - from typing_extensions import Literal as Literal # 3.8 + from typing_extensions import ( + Literal as Literal, + ) # 3.8 but has bugs before 3.10 from typing_extensions import NotRequired as NotRequired # 3.11 from typing_extensions import ParamSpec as ParamSpec # 3.10 - from typing_extensions import Protocol as Protocol # 3.8 - from typing_extensions import SupportsIndex as SupportsIndex # 3.8 from typing_extensions import TypeAlias as TypeAlias # 3.10 - from typing_extensions import TypedDict as TypedDict # 3.8 from typing_extensions import TypeGuard as TypeGuard # 3.10 + from typing_extensions import TypeVarTuple as TypeVarTuple # 3.11 from typing_extensions import Self as Self # 3.11 + from typing_extensions import TypeAliasType as TypeAliasType # 3.12 + from typing_extensions import Unpack as Unpack # 3.11 + _T = TypeVar("_T", bound=Any) _KT = TypeVar("_KT")