Skip to content

Commit 6802d41

Browse files
Improve modules import in google provider by move some of them into a type-checking block (#33783)
1 parent 452a978 commit 6802d41

File tree

120 files changed

+473
-304
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+473
-304
lines changed

β€Žairflow/providers/google/ads/hooks/ads.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,22 @@
2020

2121
from functools import cached_property
2222
from tempfile import NamedTemporaryFile
23-
from typing import IO, Any
23+
from typing import IO, TYPE_CHECKING, Any
2424

2525
from google.ads.googleads.client import GoogleAdsClient
2626
from google.ads.googleads.errors import GoogleAdsException
27-
from google.ads.googleads.v14.services.services.customer_service import CustomerServiceClient
28-
from google.ads.googleads.v14.services.services.google_ads_service import GoogleAdsServiceClient
29-
from google.ads.googleads.v14.services.types.google_ads_service import GoogleAdsRow
30-
from google.api_core.page_iterator import GRPCIterator
3127
from google.auth.exceptions import GoogleAuthError
3228

3329
from airflow import AirflowException
3430
from airflow.hooks.base import BaseHook
3531
from airflow.providers.google.common.hooks.base_google import get_field
3632

33+
if TYPE_CHECKING:
34+
from google.ads.googleads.v14.services.services.customer_service import CustomerServiceClient
35+
from google.ads.googleads.v14.services.services.google_ads_service import GoogleAdsServiceClient
36+
from google.ads.googleads.v14.services.types.google_ads_service import GoogleAdsRow
37+
from google.api_core.page_iterator import GRPCIterator
38+
3739

3840
class GoogleAdsHook(BaseHook):
3941
"""Interact with Google Ads API.

β€Žairflow/providers/google/cloud/_internal_client/secret_manager_client.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,17 @@
1818

1919
import re
2020
from functools import cached_property
21+
from typing import TYPE_CHECKING
2122

22-
import google
2323
from google.api_core.exceptions import InvalidArgument, NotFound, PermissionDenied
2424
from google.cloud.secretmanager_v1 import SecretManagerServiceClient
2525

2626
from airflow.providers.google.common.consts import CLIENT_INFO
2727
from airflow.utils.log.logging_mixin import LoggingMixin
2828

29+
if TYPE_CHECKING:
30+
import google
31+
2932
SECRET_ID_PATTERN = r"^[a-zA-Z0-9-_]*$"
3033

3134

β€Žairflow/providers/google/cloud/hooks/automl.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,9 @@
2525
from __future__ import annotations
2626

2727
from functools import cached_property
28-
from typing import Sequence
28+
from typing import TYPE_CHECKING, Sequence
2929

3030
from google.api_core.gapic_v1.method import DEFAULT, _MethodDefault
31-
from google.api_core.operation import Operation
32-
from google.api_core.retry import Retry
3331
from google.cloud.automl_v1beta1 import (
3432
AutoMlClient,
3533
BatchPredictInputConfig,
@@ -42,17 +40,21 @@
4240
PredictionServiceClient,
4341
PredictResponse,
4442
)
45-
from google.cloud.automl_v1beta1.services.auto_ml.pagers import (
46-
ListColumnSpecsPager,
47-
ListDatasetsPager,
48-
ListTableSpecsPager,
49-
)
50-
from google.protobuf.field_mask_pb2 import FieldMask
5143

5244
from airflow import AirflowException
5345
from airflow.providers.google.common.consts import CLIENT_INFO
5446
from airflow.providers.google.common.hooks.base_google import PROVIDE_PROJECT_ID, GoogleBaseHook
5547

48+
if TYPE_CHECKING:
49+
from google.api_core.operation import Operation
50+
from google.api_core.retry import Retry
51+
from google.cloud.automl_v1beta1.services.auto_ml.pagers import (
52+
ListColumnSpecsPager,
53+
ListDatasetsPager,
54+
ListTableSpecsPager,
55+
)
56+
from google.protobuf.field_mask_pb2 import FieldMask
57+
5658

5759
class CloudAutoMLHook(GoogleBaseHook):
5860
"""

β€Žairflow/providers/google/cloud/hooks/bigquery.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@
3232

3333
from aiohttp import ClientSession as ClientSession
3434
from gcloud.aio.bigquery import Job, Table as Table_async
35-
from google.api_core.page_iterator import HTTPIterator
36-
from google.api_core.retry import Retry
3735
from google.cloud.bigquery import (
3836
DEFAULT_RETRY,
3937
Client,
@@ -70,6 +68,8 @@
7068

7169
if TYPE_CHECKING:
7270
import pandas as pd
71+
from google.api_core.page_iterator import HTTPIterator
72+
from google.api_core.retry import Retry
7373

7474
log = logging.getLogger(__name__)
7575

β€Žairflow/providers/google/cloud/hooks/bigquery_dts.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,15 @@
1919
from __future__ import annotations
2020

2121
from copy import copy
22-
from typing import Sequence
22+
from typing import TYPE_CHECKING, Sequence
2323

2424
from google.api_core.gapic_v1.method import DEFAULT, _MethodDefault
25-
from google.api_core.retry import Retry
2625
from google.cloud.bigquery_datatransfer_v1 import DataTransferServiceAsyncClient, DataTransferServiceClient
2726
from google.cloud.bigquery_datatransfer_v1.types import (
2827
StartManualTransferRunsResponse,
2928
TransferConfig,
3029
TransferRun,
3130
)
32-
from googleapiclient.discovery import Resource
3331

3432
from airflow.providers.google.common.consts import CLIENT_INFO
3533
from airflow.providers.google.common.hooks.base_google import (
@@ -38,6 +36,10 @@
3836
GoogleBaseHook,
3937
)
4038

39+
if TYPE_CHECKING:
40+
from google.api_core.retry import Retry
41+
from googleapiclient.discovery import Resource
42+
4143

4244
def get_object_id(obj: dict) -> str:
4345
"""Returns unique id of the object."""

β€Žairflow/providers/google/cloud/hooks/bigtable.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,21 @@
1818
"""This module contains a Google Cloud Bigtable Hook."""
1919
from __future__ import annotations
2020

21-
import enum
22-
from typing import Sequence
21+
from typing import TYPE_CHECKING, Sequence
2322

2423
from google.cloud.bigtable import Client, enums
2524
from google.cloud.bigtable.cluster import Cluster
26-
from google.cloud.bigtable.column_family import ColumnFamily, GarbageCollectionRule
2725
from google.cloud.bigtable.instance import Instance
2826
from google.cloud.bigtable.table import ClusterState, Table
2927

3028
from airflow.providers.google.common.consts import CLIENT_INFO
3129
from airflow.providers.google.common.hooks.base_google import GoogleBaseHook
3230

31+
if TYPE_CHECKING:
32+
import enum
33+
34+
from google.cloud.bigtable.column_family import ColumnFamily, GarbageCollectionRule
35+
3336

3437
class BigtableHook(GoogleBaseHook):
3538
"""

β€Žairflow/providers/google/cloud/hooks/cloud_batch.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@
2020
import itertools
2121
import json
2222
from time import sleep
23-
from typing import Iterable, Sequence
23+
from typing import TYPE_CHECKING, Iterable, Sequence
2424

25-
from google.api_core import operation # type: ignore
2625
from google.cloud.batch import ListJobsRequest, ListTasksRequest
2726
from google.cloud.batch_v1 import (
2827
BatchServiceAsyncClient,
@@ -32,12 +31,15 @@
3231
JobStatus,
3332
Task,
3433
)
35-
from google.cloud.batch_v1.services.batch_service import pagers
3634

3735
from airflow.exceptions import AirflowException
3836
from airflow.providers.google.common.consts import CLIENT_INFO
3937
from airflow.providers.google.common.hooks.base_google import PROVIDE_PROJECT_ID, GoogleBaseHook
4038

39+
if TYPE_CHECKING:
40+
from google.api_core import operation
41+
from google.cloud.batch_v1.services.batch_service import pagers
42+
4143

4244
class CloudBatchHook(GoogleBaseHook):
4345
"""

β€Žairflow/providers/google/cloud/hooks/cloud_build.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,22 @@
1919
from __future__ import annotations
2020

2121
import warnings
22-
from typing import Sequence
22+
from typing import TYPE_CHECKING, Sequence
2323

2424
from google.api_core.client_options import ClientOptions
2525
from google.api_core.exceptions import AlreadyExists
2626
from google.api_core.gapic_v1.method import DEFAULT, _MethodDefault
27-
from google.api_core.operation import Operation
28-
from google.api_core.retry import Retry
2927
from google.cloud.devtools.cloudbuild_v1 import CloudBuildAsyncClient, CloudBuildClient, GetBuildRequest
30-
from google.cloud.devtools.cloudbuild_v1.types import Build, BuildTrigger, RepoSource
3128

3229
from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
3330
from airflow.providers.google.common.consts import CLIENT_INFO
3431
from airflow.providers.google.common.hooks.base_google import PROVIDE_PROJECT_ID, GoogleBaseHook
3532

33+
if TYPE_CHECKING:
34+
from google.api_core.operation import Operation
35+
from google.api_core.retry import Retry
36+
from google.cloud.devtools.cloudbuild_v1.types import Build, BuildTrigger, RepoSource
37+
3638
# Time to sleep between active checks of the operation results
3739
TIME_TO_SLEEP_IN_SECONDS = 5
3840

β€Žairflow/providers/google/cloud/hooks/cloud_composer.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,33 @@
1717
# under the License.
1818
from __future__ import annotations
1919

20-
from typing import Sequence
20+
from typing import TYPE_CHECKING, Sequence
2121

2222
from google.api_core.client_options import ClientOptions
2323
from google.api_core.gapic_v1.method import DEFAULT, _MethodDefault
24-
from google.api_core.operation import Operation
25-
from google.api_core.operation_async import AsyncOperation
26-
from google.api_core.retry import Retry
2724
from google.cloud.orchestration.airflow.service_v1 import (
2825
EnvironmentsAsyncClient,
2926
EnvironmentsClient,
3027
ImageVersionsClient,
3128
)
32-
from google.cloud.orchestration.airflow.service_v1.services.environments.pagers import ListEnvironmentsPager
33-
from google.cloud.orchestration.airflow.service_v1.services.image_versions.pagers import (
34-
ListImageVersionsPager,
35-
)
36-
from google.cloud.orchestration.airflow.service_v1.types import Environment
37-
from google.protobuf.field_mask_pb2 import FieldMask
3829

3930
from airflow import AirflowException
4031
from airflow.providers.google.common.consts import CLIENT_INFO
4132
from airflow.providers.google.common.hooks.base_google import GoogleBaseHook
4233

34+
if TYPE_CHECKING:
35+
from google.api_core.operation import Operation
36+
from google.api_core.operation_async import AsyncOperation
37+
from google.api_core.retry import Retry
38+
from google.cloud.orchestration.airflow.service_v1.services.environments.pagers import (
39+
ListEnvironmentsPager,
40+
)
41+
from google.cloud.orchestration.airflow.service_v1.services.image_versions.pagers import (
42+
ListImageVersionsPager,
43+
)
44+
from google.cloud.orchestration.airflow.service_v1.types import Environment
45+
from google.protobuf.field_mask_pb2 import FieldMask
46+
4347

4448
class CloudComposerHook(GoogleBaseHook):
4549
"""Hook for Google Cloud Composer APIs."""

β€Žairflow/providers/google/cloud/hooks/cloud_memorystore.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,11 @@
2727
"""
2828
from __future__ import annotations
2929

30-
from typing import Sequence
30+
from typing import TYPE_CHECKING, Sequence
3131

3232
from google.api_core import path_template
3333
from google.api_core.exceptions import NotFound
3434
from google.api_core.gapic_v1.method import DEFAULT, _MethodDefault
35-
from google.api_core.retry import Retry
3635
from google.cloud.memcache_v1beta2 import CloudMemcacheClient
3736
from google.cloud.memcache_v1beta2.types import cloud_memcache
3837
from google.cloud.redis_v1 import (
@@ -42,12 +41,15 @@
4241
Instance,
4342
OutputConfig,
4443
)
45-
from google.protobuf.field_mask_pb2 import FieldMask
4644

4745
from airflow import version
4846
from airflow.exceptions import AirflowException
4947
from airflow.providers.google.common.hooks.base_google import PROVIDE_PROJECT_ID, GoogleBaseHook
5048

49+
if TYPE_CHECKING:
50+
from google.api_core.retry import Retry
51+
from google.protobuf.field_mask_pb2 import FieldMask
52+
5153

5254
class CloudMemorystoreHook(GoogleBaseHook):
5355
"""

0 commit comments

Comments
 (0)