From d6316263c727669a41e61c49c72f3549aec9942a Mon Sep 17 00:00:00 2001 From: dpcollins-google <40498610+dpcollins-google@users.noreply.github.com> Date: Fri, 2 Oct 2020 14:31:58 -0400 Subject: [PATCH] fix: fix circular import due to make_admin_client and AdminClient being in the same file (#34) --- google/cloud/pubsublite/admin_client.py | 24 +++---------------- .../internal/wire/make_publisher.py | 2 +- google/cloud/pubsublite/make_admin_client.py | 23 ++++++++++++++++++ 3 files changed, 27 insertions(+), 22 deletions(-) create mode 100644 google/cloud/pubsublite/make_admin_client.py diff --git a/google/cloud/pubsublite/admin_client.py b/google/cloud/pubsublite/admin_client.py index 7c7c32fa..6c010e34 100644 --- a/google/cloud/pubsublite/admin_client.py +++ b/google/cloud/pubsublite/admin_client.py @@ -1,15 +1,10 @@ from abc import ABC, abstractmethod -from typing import List, Optional +from typing import List -from google.api_core.client_options import ClientOptions -from google.protobuf.field_mask_pb2 import FieldMask - -from google.cloud.pubsublite.endpoints import regional_endpoint -from google.cloud.pubsublite.internal.wire.admin_client_impl import AdminClientImpl from google.cloud.pubsublite.location import CloudRegion from google.cloud.pubsublite.paths import TopicPath, LocationPath, SubscriptionPath -from google.cloud.pubsublite_v1 import Topic, Subscription, AdminServiceClient -from google.auth.credentials import Credentials +from google.cloud.pubsublite_v1 import Topic, Subscription +from google.protobuf.field_mask_pb2 import FieldMask class AdminClient(ABC): @@ -66,16 +61,3 @@ def update_subscription( @abstractmethod def delete_subscription(self, subscription_path: SubscriptionPath): """Delete a subscription and all associated messages.""" - - -def make_admin_client( - region: CloudRegion, - credentials: Optional[Credentials] = None, - client_options: Optional[ClientOptions] = None, -) -> AdminClient: - if client_options is None: - client_options = ClientOptions(api_endpoint=regional_endpoint(region)) - return AdminClientImpl( - AdminServiceClient(client_options=client_options, credentials=credentials), - region, - ) diff --git a/google/cloud/pubsublite/internal/wire/make_publisher.py b/google/cloud/pubsublite/internal/wire/make_publisher.py index 6ce4e9db..c925ed0c 100644 --- a/google/cloud/pubsublite/internal/wire/make_publisher.py +++ b/google/cloud/pubsublite/internal/wire/make_publisher.py @@ -1,6 +1,6 @@ from typing import AsyncIterator, Mapping, Optional, MutableMapping -from google.cloud.pubsublite.admin_client import make_admin_client +from google.cloud.pubsublite.make_admin_client import make_admin_client from google.cloud.pubsublite.endpoints import regional_endpoint from google.cloud.pubsublite.internal.wire.default_routing_policy import ( DefaultRoutingPolicy, diff --git a/google/cloud/pubsublite/make_admin_client.py b/google/cloud/pubsublite/make_admin_client.py new file mode 100644 index 00000000..b05f8b09 --- /dev/null +++ b/google/cloud/pubsublite/make_admin_client.py @@ -0,0 +1,23 @@ +from typing import Optional + +from google.api_core.client_options import ClientOptions + +from google.cloud.pubsublite.admin_client import AdminClient +from google.cloud.pubsublite.endpoints import regional_endpoint +from google.cloud.pubsublite.internal.wire.admin_client_impl import AdminClientImpl +from google.cloud.pubsublite.location import CloudRegion +from google.cloud.pubsublite_v1 import AdminServiceClient +from google.auth.credentials import Credentials + + +def make_admin_client( + region: CloudRegion, + credentials: Optional[Credentials] = None, + client_options: Optional[ClientOptions] = None, +) -> AdminClient: + if client_options is None: + client_options = ClientOptions(api_endpoint=regional_endpoint(region)) + return AdminClientImpl( + AdminServiceClient(client_options=client_options, credentials=credentials), + region, + )