Skip to content

Commit

Permalink
fix: fix circular import due to make_admin_client and AdminClient bei…
Browse files Browse the repository at this point in the history
…ng in the same file (#34)
  • Loading branch information
dpcollins-google committed Oct 2, 2020
1 parent bc3318e commit d631626
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 22 deletions.
24 changes: 3 additions & 21 deletions 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):
Expand Down Expand Up @@ -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,
)
2 changes: 1 addition & 1 deletion 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,
Expand Down
23 changes: 23 additions & 0 deletions 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,
)

0 comments on commit d631626

Please sign in to comment.