diff --git a/dlt/common/configuration/specs/base_configuration.py b/dlt/common/configuration/specs/base_configuration.py index a70fe8936b..1139c093c2 100644 --- a/dlt/common/configuration/specs/base_configuration.py +++ b/dlt/common/configuration/specs/base_configuration.py @@ -20,7 +20,7 @@ TypeVar, Literal, ) -from typing_extensions import get_args, get_origin, dataclass_transform +from typing_extensions import dataclass_transform from functools import wraps if TYPE_CHECKING: @@ -41,6 +41,8 @@ is_optional_type, is_subclass, is_union_type, + get_args, + get_origin, ) from dlt.common.data_types import py_type_to_sc_type from dlt.common.configuration.exceptions import ( diff --git a/dlt/common/configuration/utils.py b/dlt/common/configuration/utils.py index 31bc672f7a..8e251d382a 100644 --- a/dlt/common/configuration/utils.py +++ b/dlt/common/configuration/utils.py @@ -11,16 +11,14 @@ Tuple, Type, Sequence, - get_args, Literal, - get_origin, ) from collections.abc import Mapping as C_Mapping import yaml from dlt.common.json import json -from dlt.common.typing import AnyType, DictStrAny, TAny, is_any_type +from dlt.common.typing import AnyType, DictStrAny, TAny, is_any_type, get_args, get_origin from dlt.common.data_types import coerce_value, py_type_to_sc_type from dlt.common.configuration.providers import EnvironProvider from dlt.common.configuration.exceptions import ConfigValueCannotBeCoercedException, LookupTrace diff --git a/dlt/common/data_types/typing.py b/dlt/common/data_types/typing.py index 3d56c6131a..0474ba3b82 100644 --- a/dlt/common/data_types/typing.py +++ b/dlt/common/data_types/typing.py @@ -1,4 +1,6 @@ -from typing import Literal, Set, get_args +from typing import Literal, Set + +from dlt.common.typing import get_args TDataType = Literal[ diff --git a/dlt/common/destination/capabilities.py b/dlt/common/destination/capabilities.py index 5b3e952d95..c7cf0da832 100644 --- a/dlt/common/destination/capabilities.py +++ b/dlt/common/destination/capabilities.py @@ -11,12 +11,11 @@ Set, Protocol, Type, - get_args, ) from dlt.common.data_types import TDataType from dlt.common.exceptions import TerminalValueError from dlt.common.normalizers.typing import TNamingConventionReferenceArg -from dlt.common.typing import TLoaderFileFormat +from dlt.common.typing import TLoaderFileFormat, get_args from dlt.common.configuration.utils import serialize_value from dlt.common.configuration import configspec from dlt.common.configuration.specs import ContainerInjectableContext diff --git a/dlt/common/libs/pydantic.py b/dlt/common/libs/pydantic.py index 3a826a2e0d..ac6762eda3 100644 --- a/dlt/common/libs/pydantic.py +++ b/dlt/common/libs/pydantic.py @@ -1,5 +1,4 @@ from __future__ import annotations as _annotations -import inspect from copy import copy from typing import ( Dict, @@ -9,18 +8,20 @@ List, Type, Union, - TypeVar, Any, ) -from typing_extensions import Annotated, get_args, get_origin -from dlt.common.typing import TypedDict from dlt.common.data_types import py_type_to_sc_type from dlt.common.exceptions import MissingDependencyException from dlt.common.schema import DataValidationError from dlt.common.schema.typing import TSchemaEvolutionMode, TTableSchemaColumns from dlt.common.normalizers.naming.snake_case import NamingConvention as SnakeCaseNamingConvention from dlt.common.typing import ( + TypedDict, + Annotated, + get_args, + get_origin, + TypeVar, TDataItem, TDataItems, extract_union_types, diff --git a/dlt/common/schema/typing.py b/dlt/common/schema/typing.py index 7645ec63eb..3cb9f1c613 100644 --- a/dlt/common/schema/typing.py +++ b/dlt/common/schema/typing.py @@ -12,14 +12,19 @@ Type, NewType, Union, - get_args, ) from typing_extensions import Never -from dlt.common.typing import TypedDict from dlt.common.data_types import TDataType from dlt.common.normalizers.typing import TNormalizersConfig -from dlt.common.typing import TSortOrder, TAnyDateTime, TLoaderFileFormat, TColumnNames +from dlt.common.typing import ( + TSortOrder, + TAnyDateTime, + TLoaderFileFormat, + TColumnNames, + TypedDict, + get_args, +) try: from pydantic import BaseModel as _PydanticBaseModel diff --git a/dlt/common/storages/configuration.py b/dlt/common/storages/configuration.py index 625435e4b8..5885c4ebd5 100644 --- a/dlt/common/storages/configuration.py +++ b/dlt/common/storages/configuration.py @@ -1,6 +1,6 @@ import os import pathlib -from typing import Any, Literal, Optional, Type, get_args, ClassVar, Dict, Union +from typing import Any, Literal, Optional, Type, ClassVar, Dict, Union from urllib.parse import urlparse, unquote, urlunparse from dlt.common.configuration import configspec, resolve_type @@ -15,7 +15,7 @@ SFTPCredentials, ) from dlt.common.exceptions import TerminalValueError -from dlt.common.typing import DictStrAny +from dlt.common.typing import DictStrAny, get_args from dlt.common.utils import digest128 diff --git a/dlt/common/storages/load_package.py b/dlt/common/storages/load_package.py index 20ba1646a8..3088837a91 100644 --- a/dlt/common/storages/load_package.py +++ b/dlt/common/storages/load_package.py @@ -17,14 +17,13 @@ Optional, Sequence, Set, - get_args, cast, Any, Tuple, ) from typing_extensions import NotRequired -from dlt.common.typing import TypedDict +from dlt.common.typing import TypedDict, get_args, DictStrAny, SupportsHumanize from dlt.common.pendulum import pendulum from dlt.common.json import json from dlt.common.configuration import configspec @@ -43,7 +42,6 @@ LoadPackageNotFound, CurrentLoadPackageStateNotAvailable, ) -from dlt.common.typing import DictStrAny, SupportsHumanize from dlt.common.utils import flatten_list_or_items from dlt.common.versioned_state import ( generate_state_version_hash, diff --git a/dlt/common/typing.py b/dlt/common/typing.py index 64c96f0c95..eccf20ac98 100644 --- a/dlt/common/typing.py +++ b/dlt/common/typing.py @@ -3,10 +3,8 @@ import inspect import os from re import Pattern as _REPattern -import sys from types import FunctionType from typing import ( - ForwardRef, Callable, ClassVar, Dict, @@ -19,8 +17,6 @@ Optional, Tuple, Type, - TypeVar, - Generic, Protocol, TYPE_CHECKING, Union, @@ -33,6 +29,7 @@ ) from typing_extensions import ( + ForwardRef, Annotated, Never, ParamSpec, @@ -40,7 +37,11 @@ Concatenate, Unpack, Self, + Generic, get_args, + TypeVar, + get_origin, + get_type_hints, get_origin, get_original_bases, ) diff --git a/dlt/common/validation.py b/dlt/common/validation.py index e87f601a31..25cf3e55b3 100644 --- a/dlt/common/validation.py +++ b/dlt/common/validation.py @@ -1,7 +1,6 @@ import functools import inspect -from typing import Callable, Any, List, Type, get_type_hints -from typing_extensions import get_args +from typing import Callable, Any, List, Type from dlt.common.exceptions import DictValidationException from dlt.common.typing import ( @@ -16,6 +15,8 @@ is_typeddict, is_list_generic_type, is_dict_generic_type, + get_args, + get_type_hints, _TypedDict, ) diff --git a/dlt/destinations/impl/clickhouse/typing.py b/dlt/destinations/impl/clickhouse/typing.py index 3e710eeca2..7bceee9cb8 100644 --- a/dlt/destinations/impl/clickhouse/typing.py +++ b/dlt/destinations/impl/clickhouse/typing.py @@ -1,6 +1,8 @@ -from typing import Literal, Dict, get_args, Set +from typing import Literal, Dict, Set from dlt.common.schema import TColumnHint +from dlt.common.typing import get_args + TSecureConnection = Literal[0, 1] TTableEngineType = Literal[ diff --git a/dlt/destinations/impl/synapse/synapse_adapter.py b/dlt/destinations/impl/synapse/synapse_adapter.py index e12823c7bf..d13e928748 100644 --- a/dlt/destinations/impl/synapse/synapse_adapter.py +++ b/dlt/destinations/impl/synapse/synapse_adapter.py @@ -1,5 +1,6 @@ -from typing import Any, Literal, Set, get_args, Final, Dict +from typing import Any, Literal, Set, Final, Dict +from dlt.common.typing import get_args from dlt.extract import DltResource, resource as make_resource from dlt.extract.items import TTableHintTemplate from dlt.extract.hints import TResourceHints diff --git a/dlt/destinations/impl/weaviate/weaviate_adapter.py b/dlt/destinations/impl/weaviate/weaviate_adapter.py index 329d13c493..2eabf8c7e1 100644 --- a/dlt/destinations/impl/weaviate/weaviate_adapter.py +++ b/dlt/destinations/impl/weaviate/weaviate_adapter.py @@ -1,7 +1,7 @@ -from typing import Dict, Any, Literal, Set, get_args +from typing import Dict, Any, Literal, Set from dlt.common.schema.typing import TTableSchemaColumns -from dlt.common.typing import TColumnNames +from dlt.common.typing import TColumnNames, get_args from dlt.extract import DltResource, resource as make_resource from dlt.destinations.utils import get_resource_for_adapter diff --git a/dlt/extract/incremental/__init__.py b/dlt/extract/incremental/__init__.py index 6d77758d59..d72c858440 100644 --- a/dlt/extract/incremental/__init__.py +++ b/dlt/extract/incremental/__init__.py @@ -2,8 +2,6 @@ from datetime import datetime # noqa: I251 from typing import Generic, ClassVar, Any, Optional, Type, Dict, Union, Literal, Tuple -from typing_extensions import get_args - import inspect from functools import wraps @@ -16,6 +14,7 @@ TDataItems, TFun, TSortOrder, + get_args, extract_inner_type, get_generic_type_argument_from_instance, is_optional_type, diff --git a/dlt/pipeline/pipeline.py b/dlt/pipeline/pipeline.py index d0d162f0a4..dea81d6c68 100644 --- a/dlt/pipeline/pipeline.py +++ b/dlt/pipeline/pipeline.py @@ -13,7 +13,6 @@ Sequence, Tuple, cast, - get_type_hints, ContextManager, Union, ) @@ -45,7 +44,7 @@ ) from dlt.common.schema.utils import normalize_schema_name from dlt.common.storages.exceptions import LoadPackageNotFound -from dlt.common.typing import ConfigValue, TFun, TSecretStrValue, TColumnNames +from dlt.common.typing import ConfigValue, TFun, TSecretStrValue, TColumnNames, get_type_hints from dlt.common.runners import pool_runner as runner from dlt.common.storages import ( LiveSchemaStorage,