Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Fix circular import due to make_admin_client and AdminClient being in the same file #34

Merged
merged 1 commit into from Oct 2, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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,
)