From: Federico Caselli Date: Tue, 5 Dec 2023 21:50:21 +0000 (+0100) Subject: Use typing module instead of typing_extension for 3.8 objects X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=717202cc92ed729b956f5c4f0ff733e54c690965;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Use typing module instead of typing_extension for 3.8 objects Change-Id: Ia3117b24d677f5e36134df20eb151edef0f6ac36 --- diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index ea7ac156fe..a932d67923 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -1410,6 +1410,7 @@ from typing import List from typing import Optional from typing import Tuple from typing import TYPE_CHECKING +from typing import TypedDict from typing import Union from . import array as _array @@ -1487,7 +1488,6 @@ from ...types import SMALLINT from ...types import TEXT from ...types import UUID as UUID from ...types import VARCHAR -from ...util.typing import TypedDict IDX_USING = re.compile(r"^(?:btree|hash|gist|gin|[\w_]+)$", re.I) diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 553d8f0bea..33e05120e2 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -26,6 +26,7 @@ from typing import Any from typing import Callable from typing import cast from typing import Dict +from typing import Final from typing import List from typing import Mapping from typing import MutableMapping @@ -64,7 +65,6 @@ from ..sql.compiler import DDLCompiler 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 if typing.TYPE_CHECKING: diff --git a/lib/sqlalchemy/engine/interfaces.py b/lib/sqlalchemy/engine/interfaces.py index 4bf0d3e9e7..faea997dea 100644 --- a/lib/sqlalchemy/engine/interfaces.py +++ b/lib/sqlalchemy/engine/interfaces.py @@ -23,11 +23,13 @@ from typing import List from typing import Mapping from typing import MutableMapping from typing import Optional +from typing import Protocol from typing import Sequence from typing import Set from typing import Tuple from typing import Type from typing import TYPE_CHECKING +from typing import TypedDict from typing import TypeVar from typing import Union @@ -43,8 +45,6 @@ from ..util import immutabledict from ..util.concurrency import await_only from ..util.typing import Literal from ..util.typing import NotRequired -from ..util.typing import Protocol -from ..util.typing import TypedDict if TYPE_CHECKING: from .base import Connection diff --git a/lib/sqlalchemy/engine/reflection.py b/lib/sqlalchemy/engine/reflection.py index 66e94429cb..6eed23cbfc 100644 --- a/lib/sqlalchemy/engine/reflection.py +++ b/lib/sqlalchemy/engine/reflection.py @@ -35,6 +35,7 @@ from typing import Any from typing import Callable from typing import Collection from typing import Dict +from typing import final from typing import Generator from typing import Iterable from typing import List @@ -59,7 +60,6 @@ from ..sql.elements import TextClause from ..sql.type_api import TypeEngine from ..sql.visitors import InternalTraversal from ..util import topological -from ..util.typing import final if TYPE_CHECKING: from .interfaces import Dialect diff --git a/lib/sqlalchemy/engine/util.py b/lib/sqlalchemy/engine/util.py index 9b147a7014..49f9f9b4ee 100644 --- a/lib/sqlalchemy/engine/util.py +++ b/lib/sqlalchemy/engine/util.py @@ -11,12 +11,12 @@ import typing from typing import Any from typing import Callable from typing import Optional +from typing import Protocol from typing import TypeVar from .. import exc from .. import util from ..util._has_cy import HAS_CYEXTENSION -from ..util.typing import Protocol if typing.TYPE_CHECKING or not HAS_CYEXTENSION: from ._py_util import _distill_params_20 as _distill_params_20 diff --git a/lib/sqlalchemy/event/attr.py b/lib/sqlalchemy/event/attr.py index 0aa3419830..2a5fccba20 100644 --- a/lib/sqlalchemy/event/attr.py +++ b/lib/sqlalchemy/event/attr.py @@ -46,6 +46,7 @@ from typing import MutableMapping from typing import MutableSequence from typing import NoReturn from typing import Optional +from typing import Protocol from typing import Sequence from typing import Set from typing import Tuple @@ -62,7 +63,6 @@ from .registry import _ListenerFnType from .. import exc from .. import util from ..util.concurrency import AsyncAdaptedLock -from ..util.typing import Protocol _T = TypeVar("_T", bound=Any) diff --git a/lib/sqlalchemy/ext/associationproxy.py b/lib/sqlalchemy/ext/associationproxy.py index 3cca0ba728..b0b0a5edf1 100644 --- a/lib/sqlalchemy/ext/associationproxy.py +++ b/lib/sqlalchemy/ext/associationproxy.py @@ -36,7 +36,9 @@ from typing import MutableSet from typing import NoReturn from typing import Optional from typing import overload +from typing import Protocol from typing import Set +from typing import SupportsIndex from typing import Tuple from typing import Type from typing import TypeVar @@ -60,9 +62,7 @@ from ..sql import operators from ..sql import or_ from ..sql.base import _NoArg from ..util.typing import Literal -from ..util.typing import Protocol from ..util.typing import Self -from ..util.typing import SupportsIndex from ..util.typing import SupportsKeysAndGetItem if typing.TYPE_CHECKING: diff --git a/lib/sqlalchemy/ext/automap.py b/lib/sqlalchemy/ext/automap.py index 18568c7f28..0ffc4dc507 100644 --- a/lib/sqlalchemy/ext/automap.py +++ b/lib/sqlalchemy/ext/automap.py @@ -679,6 +679,7 @@ from typing import List 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 @@ -697,7 +698,6 @@ from ..orm.mapper import _CONFIGURE_MUTEX from ..schema import ForeignKeyConstraint from ..sql import and_ from ..util import Properties -from ..util.typing import Protocol if TYPE_CHECKING: from ..engine.base import Engine diff --git a/lib/sqlalchemy/ext/horizontal_shard.py b/lib/sqlalchemy/ext/horizontal_shard.py index 963bd005a4..c50b1c5227 100644 --- a/lib/sqlalchemy/ext/horizontal_shard.py +++ b/lib/sqlalchemy/ext/horizontal_shard.py @@ -30,6 +30,7 @@ from typing import Callable from typing import Dict from typing import Iterable from typing import Optional +from typing import Protocol from typing import Tuple from typing import Type from typing import TYPE_CHECKING @@ -48,7 +49,6 @@ from ..orm.query import Query 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 if TYPE_CHECKING: diff --git a/lib/sqlalchemy/ext/hybrid.py b/lib/sqlalchemy/ext/hybrid.py index 615f166b47..6252e33d57 100644 --- a/lib/sqlalchemy/ext/hybrid.py +++ b/lib/sqlalchemy/ext/hybrid.py @@ -834,6 +834,7 @@ from typing import Generic from typing import List from typing import Optional from typing import overload +from typing import Protocol from typing import Sequence from typing import Tuple from typing import Type @@ -854,7 +855,6 @@ from ..sql.elements import SQLCoreOperations from ..util.typing import Concatenate from ..util.typing import Literal from ..util.typing import ParamSpec -from ..util.typing import Protocol from ..util.typing import Self if TYPE_CHECKING: diff --git a/lib/sqlalchemy/ext/mutable.py b/lib/sqlalchemy/ext/mutable.py index 38ea9469ee..312f0e49d6 100644 --- a/lib/sqlalchemy/ext/mutable.py +++ b/lib/sqlalchemy/ext/mutable.py @@ -368,6 +368,7 @@ from typing import List from typing import Optional from typing import overload from typing import Set +from typing import SupportsIndex from typing import Tuple from typing import TYPE_CHECKING from typing import TypeVar @@ -394,7 +395,6 @@ from ..sql.base import SchemaEventTarget from ..sql.schema import Column from ..sql.type_api import TypeEngine from ..util import memoized_property -from ..util.typing import SupportsIndex from ..util.typing import TypeGuard _KT = TypeVar("_KT") # Key type. diff --git a/lib/sqlalchemy/inspection.py b/lib/sqlalchemy/inspection.py index 1fe37d925f..b9671605f3 100644 --- a/lib/sqlalchemy/inspection.py +++ b/lib/sqlalchemy/inspection.py @@ -36,13 +36,13 @@ from typing import Dict from typing import Generic from typing import Optional from typing import overload +from typing import Protocol from typing import Type from typing import TypeVar from typing import Union from . import exc from .util.typing import Literal -from .util.typing import Protocol _T = TypeVar("_T", bound=Any) _TCov = TypeVar("_TCov", bound=Any, covariant=True) diff --git a/lib/sqlalchemy/orm/_typing.py b/lib/sqlalchemy/orm/_typing.py index 07f5e61a0f..532d0e0b36 100644 --- a/lib/sqlalchemy/orm/_typing.py +++ b/lib/sqlalchemy/orm/_typing.py @@ -12,6 +12,7 @@ from typing import Any from typing import Dict from typing import Mapping from typing import Optional +from typing import Protocol from typing import Tuple from typing import Type from typing import TYPE_CHECKING @@ -26,7 +27,6 @@ from ..sql._orm_types import ( ) from ..sql._typing import _HasClauseElement from ..sql.elements import ColumnElement -from ..util.typing import Protocol from ..util.typing import TypeGuard if TYPE_CHECKING: diff --git a/lib/sqlalchemy/orm/collections.py b/lib/sqlalchemy/orm/collections.py index 3a4964c460..fa7f20ebc9 100644 --- a/lib/sqlalchemy/orm/collections.py +++ b/lib/sqlalchemy/orm/collections.py @@ -117,6 +117,7 @@ from typing import Iterable from typing import List from typing import NoReturn from typing import Optional +from typing import Protocol from typing import Set from typing import Tuple from typing import Type @@ -130,7 +131,6 @@ from .. import exc as sa_exc from .. import util from ..sql.base import NO_ARG from ..util.compat import inspect_getfullargspec -from ..util.typing import Protocol if typing.TYPE_CHECKING: from .attributes import AttributeEventToken diff --git a/lib/sqlalchemy/orm/decl_api.py b/lib/sqlalchemy/orm/decl_api.py index f2039afcd5..308c3a3479 100644 --- a/lib/sqlalchemy/orm/decl_api.py +++ b/lib/sqlalchemy/orm/decl_api.py @@ -662,7 +662,7 @@ class DeclarativeBase( collection as well as a specific value for :paramref:`_orm.registry.type_annotation_map`:: - from typing_extensions import Annotated + from typing import Annotated from sqlalchemy import BigInteger from sqlalchemy import MetaData diff --git a/lib/sqlalchemy/orm/decl_base.py b/lib/sqlalchemy/orm/decl_base.py index 6e8578863e..3be539a2eb 100644 --- a/lib/sqlalchemy/orm/decl_base.py +++ b/lib/sqlalchemy/orm/decl_base.py @@ -22,10 +22,12 @@ from typing import Mapping from typing import NamedTuple from typing import NoReturn from typing import Optional +from typing import Protocol from typing import Sequence from typing import Tuple from typing import Type from typing import TYPE_CHECKING +from typing import TypedDict from typing import TypeVar from typing import Union import weakref @@ -67,8 +69,6 @@ from ..util import topological from ..util.typing import _AnnotationScanType from ..util.typing import is_fwd_ref from ..util.typing import is_literal -from ..util.typing import Protocol -from ..util.typing import TypedDict from ..util.typing import typing_get_args if TYPE_CHECKING: diff --git a/lib/sqlalchemy/orm/instrumentation.py b/lib/sqlalchemy/orm/instrumentation.py index b12d80ac4f..6eb7773d00 100644 --- a/lib/sqlalchemy/orm/instrumentation.py +++ b/lib/sqlalchemy/orm/instrumentation.py @@ -42,6 +42,7 @@ from typing import Generic from typing import Iterable from typing import List from typing import Optional +from typing import Protocol from typing import Set from typing import Tuple from typing import Type @@ -61,7 +62,6 @@ from .. import util from ..event import EventTarget from ..util import HasMemoized from ..util.typing import Literal -from ..util.typing import Protocol if TYPE_CHECKING: from ._typing import _RegistryType diff --git a/lib/sqlalchemy/orm/interfaces.py b/lib/sqlalchemy/orm/interfaces.py index fed07334fb..cc3ad0d923 100644 --- a/lib/sqlalchemy/orm/interfaces.py +++ b/lib/sqlalchemy/orm/interfaces.py @@ -37,6 +37,7 @@ from typing import Set from typing import Tuple from typing import Type from typing import TYPE_CHECKING +from typing import TypedDict from typing import TypeVar from typing import Union @@ -71,7 +72,6 @@ from ..sql.schema import Column from ..sql.type_api import TypeEngine from ..util import warn_deprecated from ..util.typing import RODescriptorReference -from ..util.typing import TypedDict if typing.TYPE_CHECKING: from ._typing import _EntityType diff --git a/lib/sqlalchemy/orm/scoping.py b/lib/sqlalchemy/orm/scoping.py index 15ece71dcd..f5f08c72f5 100644 --- a/lib/sqlalchemy/orm/scoping.py +++ b/lib/sqlalchemy/orm/scoping.py @@ -15,6 +15,7 @@ from typing import Iterable from typing import Iterator from typing import Optional from typing import overload +from typing import Protocol from typing import Sequence from typing import Tuple from typing import Type @@ -31,7 +32,6 @@ from ..util import ScopedRegistry from ..util import ThreadLocalRegistry from ..util import warn from ..util import warn_deprecated -from ..util.typing import Protocol if TYPE_CHECKING: from ._typing import _EntityType diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py index 4c3ab5ab62..094e029ae7 100644 --- a/lib/sqlalchemy/orm/session.py +++ b/lib/sqlalchemy/orm/session.py @@ -25,6 +25,7 @@ from typing import List from typing import NoReturn from typing import Optional from typing import overload +from typing import Protocol from typing import Sequence from typing import Set from typing import Tuple @@ -90,7 +91,6 @@ from ..sql.selectable import ForUpdateArg from ..sql.selectable import LABEL_STYLE_TABLENAME_PLUS_COL from ..util import IdentitySet from ..util.typing import Literal -from ..util.typing import Protocol if typing.TYPE_CHECKING: from ._typing import _EntityType diff --git a/lib/sqlalchemy/orm/state.py b/lib/sqlalchemy/orm/state.py index d9e1f854d7..20ecb2a606 100644 --- a/lib/sqlalchemy/orm/state.py +++ b/lib/sqlalchemy/orm/state.py @@ -20,6 +20,7 @@ from typing import Dict from typing import Generic from typing import Iterable from typing import Optional +from typing import Protocol from typing import Set from typing import Tuple from typing import TYPE_CHECKING @@ -45,7 +46,6 @@ from .. import exc as sa_exc from .. import inspection from .. import util from ..util.typing import Literal -from ..util.typing import Protocol if TYPE_CHECKING: from ._typing import _IdentityKeyType diff --git a/lib/sqlalchemy/orm/strategy_options.py b/lib/sqlalchemy/orm/strategy_options.py index c62851e1b3..e4bbef685b 100644 --- a/lib/sqlalchemy/orm/strategy_options.py +++ b/lib/sqlalchemy/orm/strategy_options.py @@ -17,6 +17,7 @@ from typing import Any from typing import Callable from typing import cast from typing import Dict +from typing import Final from typing import Iterable from typing import Optional from typing import overload @@ -53,7 +54,6 @@ from ..sql import roles from ..sql import traversals from ..sql import visitors from ..sql.base import _generative -from ..util.typing import Final from ..util.typing import Literal from ..util.typing import Self diff --git a/lib/sqlalchemy/orm/util.py b/lib/sqlalchemy/orm/util.py index ea2f1a12e9..94bd63ba98 100644 --- a/lib/sqlalchemy/orm/util.py +++ b/lib/sqlalchemy/orm/util.py @@ -25,6 +25,7 @@ from typing import Iterator from typing import List from typing import Match from typing import Optional +from typing import Protocol from typing import Sequence from typing import Tuple from typing import Type @@ -91,7 +92,6 @@ 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 typing_get_origin if typing.TYPE_CHECKING: diff --git a/lib/sqlalchemy/pool/base.py b/lib/sqlalchemy/pool/base.py index 90ad1d4764..303ed3f181 100644 --- a/lib/sqlalchemy/pool/base.py +++ b/lib/sqlalchemy/pool/base.py @@ -25,6 +25,7 @@ from typing import Deque from typing import Dict from typing import List from typing import Optional +from typing import Protocol from typing import Tuple from typing import TYPE_CHECKING from typing import Union @@ -35,7 +36,6 @@ from .. import exc from .. import log from .. import util from ..util.typing import Literal -from ..util.typing import Protocol if TYPE_CHECKING: from ..engine.interfaces import DBAPIConnection diff --git a/lib/sqlalchemy/sql/_typing.py b/lib/sqlalchemy/sql/_typing.py index 003cc51245..944b29176a 100644 --- a/lib/sqlalchemy/sql/_typing.py +++ b/lib/sqlalchemy/sql/_typing.py @@ -16,6 +16,7 @@ from typing import Mapping 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 @@ -28,7 +29,6 @@ from .. import exc from .. import util from ..inspection import Inspectable from ..util.typing import Literal -from ..util.typing import Protocol from ..util.typing import TypeAlias if TYPE_CHECKING: diff --git a/lib/sqlalchemy/sql/base.py b/lib/sqlalchemy/sql/base.py index 104c5958a0..df79bc8471 100644 --- a/lib/sqlalchemy/sql/base.py +++ b/lib/sqlalchemy/sql/base.py @@ -34,6 +34,7 @@ from typing import NamedTuple from typing import NoReturn from typing import Optional from typing import overload +from typing import Protocol from typing import Sequence from typing import Set from typing import Tuple @@ -56,8 +57,6 @@ from .. import exc from .. import util from ..util import HasMemoized as HasMemoized from ..util import hybridmethod -from ..util import typing as compat_typing -from ..util.typing import Protocol from ..util.typing import Self from ..util.typing import TypeGuard @@ -260,7 +259,7 @@ def _select_iterables( _SelfGenerativeType = TypeVar("_SelfGenerativeType", bound="_GenerativeType") -class _GenerativeType(compat_typing.Protocol): +class _GenerativeType(Protocol): def _generate(self) -> Self: ... diff --git a/lib/sqlalchemy/sql/cache_key.py b/lib/sqlalchemy/sql/cache_key.py index 831b90809b..094e8cac45 100644 --- a/lib/sqlalchemy/sql/cache_key.py +++ b/lib/sqlalchemy/sql/cache_key.py @@ -19,6 +19,7 @@ from typing import List from typing import MutableMapping from typing import NamedTuple from typing import Optional +from typing import Protocol from typing import Sequence from typing import Tuple from typing import Union @@ -32,7 +33,6 @@ from .. import util from ..inspection import inspect from ..util import HasMemoized from ..util.typing import Literal -from ..util.typing import Protocol if typing.TYPE_CHECKING: from .elements import BindParameter diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index cb6899c5e9..d319db4bae 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -49,11 +49,13 @@ from typing import NamedTuple from typing import NoReturn from typing import Optional from typing import Pattern +from typing import Protocol from typing import Sequence from typing import Set from typing import Tuple from typing import Type from typing import TYPE_CHECKING +from typing import TypedDict from typing import Union from . import base @@ -86,8 +88,6 @@ from .. import exc from .. import util from ..util import FastIntFlag from ..util.typing import Literal -from ..util.typing import Protocol -from ..util.typing import TypedDict if typing.TYPE_CHECKING: from .annotation import _AnnotationDict diff --git a/lib/sqlalchemy/sql/ddl.py b/lib/sqlalchemy/sql/ddl.py index 06bbcae2e4..2c2c20ceef 100644 --- a/lib/sqlalchemy/sql/ddl.py +++ b/lib/sqlalchemy/sql/ddl.py @@ -20,6 +20,7 @@ from typing import Callable from typing import Iterable from typing import List from typing import Optional +from typing import Protocol from typing import Sequence as typing_Sequence from typing import Tuple @@ -31,7 +32,6 @@ from .elements import ClauseElement from .. import exc from .. import util from ..util import topological -from ..util.typing import Protocol from ..util.typing import Self if typing.TYPE_CHECKING: diff --git a/lib/sqlalchemy/sql/operators.py b/lib/sqlalchemy/sql/operators.py index 1d3f2f483f..b0acbb6e5a 100644 --- a/lib/sqlalchemy/sql/operators.py +++ b/lib/sqlalchemy/sql/operators.py @@ -41,6 +41,7 @@ from typing import Dict from typing import Generic from typing import Optional from typing import overload +from typing import Protocol from typing import Set from typing import Tuple from typing import Type @@ -51,7 +52,6 @@ from typing import Union from .. import exc from .. import util from ..util.typing import Literal -from ..util.typing import Protocol if typing.TYPE_CHECKING: from ._typing import ColumnExpressionArgument diff --git a/lib/sqlalchemy/sql/schema.py b/lib/sqlalchemy/sql/schema.py index 79239fc5cd..5a9a64e69c 100644 --- a/lib/sqlalchemy/sql/schema.py +++ b/lib/sqlalchemy/sql/schema.py @@ -40,6 +40,7 @@ from typing import Callable from typing import cast from typing import Collection from typing import Dict +from typing import Final from typing import Iterable from typing import Iterator from typing import List @@ -47,10 +48,12 @@ from typing import Mapping from typing import NoReturn from typing import Optional from typing import overload +from typing import Protocol from typing import Sequence as _typing_Sequence from typing import Set from typing import Tuple from typing import TYPE_CHECKING +from typing import TypedDict from typing import TypeVar from typing import Union @@ -82,11 +85,8 @@ from .. import exc from .. import inspection from .. import util from ..util import HasMemoized -from ..util.typing import Final from ..util.typing import Literal -from ..util.typing import Protocol from ..util.typing import Self -from ..util.typing import TypedDict from ..util.typing import TypeGuard if typing.TYPE_CHECKING: diff --git a/lib/sqlalchemy/sql/selectable.py b/lib/sqlalchemy/sql/selectable.py index bbc7b0b549..439a3ba676 100644 --- a/lib/sqlalchemy/sql/selectable.py +++ b/lib/sqlalchemy/sql/selectable.py @@ -30,6 +30,7 @@ from typing import NamedTuple from typing import NoReturn from typing import Optional from typing import overload +from typing import Protocol from typing import Sequence from typing import Set from typing import Tuple @@ -98,7 +99,6 @@ from .. import exc 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 and_ = BooleanClauseList.and_ diff --git a/lib/sqlalchemy/sql/type_api.py b/lib/sqlalchemy/sql/type_api.py index 9226b01e61..5b26e05cab 100644 --- a/lib/sqlalchemy/sql/type_api.py +++ b/lib/sqlalchemy/sql/type_api.py @@ -23,10 +23,12 @@ from typing import Mapping from typing import NewType from typing import Optional from typing import overload +from typing import Protocol from typing import Sequence from typing import Tuple from typing import Type from typing import TYPE_CHECKING +from typing import TypedDict from typing import TypeVar from typing import Union @@ -37,9 +39,7 @@ from .operators import ColumnOperators from .visitors import Visitable from .. import exc from .. import util -from ..util.typing import Protocol from ..util.typing import Self -from ..util.typing import TypedDict from ..util.typing import TypeGuard # these are back-assigned by sqltypes. diff --git a/lib/sqlalchemy/sql/util.py b/lib/sqlalchemy/sql/util.py index 19551831fe..ed2ae80326 100644 --- a/lib/sqlalchemy/sql/util.py +++ b/lib/sqlalchemy/sql/util.py @@ -26,6 +26,7 @@ from typing import Iterator from typing import List from typing import Optional from typing import overload +from typing import Protocol from typing import Sequence from typing import Tuple from typing import TYPE_CHECKING @@ -69,7 +70,6 @@ from .visitors import _ET from .. import exc from .. import util from ..util.typing import Literal -from ..util.typing import Protocol if typing.TYPE_CHECKING: from ._typing import _EquivalentColumnMap diff --git a/lib/sqlalchemy/sql/visitors.py b/lib/sqlalchemy/sql/visitors.py index cccebe65ba..3bf9205e47 100644 --- a/lib/sqlalchemy/sql/visitors.py +++ b/lib/sqlalchemy/sql/visitors.py @@ -28,6 +28,7 @@ from typing import List from typing import Mapping from typing import Optional from typing import overload +from typing import Protocol from typing import Tuple from typing import Type from typing import TYPE_CHECKING @@ -39,7 +40,6 @@ from .. import util from ..util import langhelpers from ..util._has_cy import HAS_CYEXTENSION from ..util.typing import Literal -from ..util.typing import Protocol from ..util.typing import Self if TYPE_CHECKING: diff --git a/lib/sqlalchemy/util/_collections.py b/lib/sqlalchemy/util/_collections.py index e4677f73e1..90cfa716e9 100644 --- a/lib/sqlalchemy/util/_collections.py +++ b/lib/sqlalchemy/util/_collections.py @@ -27,6 +27,7 @@ from typing import Mapping from typing import NoReturn from typing import Optional from typing import overload +from typing import Protocol from typing import Sequence from typing import Set from typing import Tuple @@ -37,7 +38,6 @@ import weakref from ._has_cy import HAS_CYEXTENSION from .typing import Literal -from .typing import Protocol if typing.TYPE_CHECKING or not HAS_CYEXTENSION: from ._py_collections import immutabledict as immutabledict diff --git a/lib/sqlalchemy/util/typing.py b/lib/sqlalchemy/util/typing.py index aad5709451..d13859309a 100644 --- a/lib/sqlalchemy/util/typing.py +++ b/lib/sqlalchemy/util/typing.py @@ -11,7 +11,6 @@ from __future__ import annotations import builtins import re import sys -import typing from typing import Any from typing import Callable from typing import cast @@ -24,6 +23,7 @@ from typing import NewType 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 @@ -34,22 +34,19 @@ from typing import Union from . import compat if True: # zimports removes the tailing comments - from typing_extensions import Annotated as Annotated # 3.8 + from typing_extensions import Annotated as Annotated # 3.9 from typing_extensions import Concatenate as Concatenate # 3.10 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 Self as Self # 3.11