Skip to content

Commit d631626

Browse files
fix: fix circular import due to make_admin_client and AdminClient being in the same file (#34)
1 parent bc3318e commit d631626

File tree

3 files changed

+27
-22
lines changed

3 files changed

+27
-22
lines changed

google/cloud/pubsublite/admin_client.py

+3-21
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
from abc import ABC, abstractmethod
2-
from typing import List, Optional
2+
from typing import List
33

4-
from google.api_core.client_options import ClientOptions
5-
from google.protobuf.field_mask_pb2 import FieldMask
6-
7-
from google.cloud.pubsublite.endpoints import regional_endpoint
8-
from google.cloud.pubsublite.internal.wire.admin_client_impl import AdminClientImpl
94
from google.cloud.pubsublite.location import CloudRegion
105
from google.cloud.pubsublite.paths import TopicPath, LocationPath, SubscriptionPath
11-
from google.cloud.pubsublite_v1 import Topic, Subscription, AdminServiceClient
12-
from google.auth.credentials import Credentials
6+
from google.cloud.pubsublite_v1 import Topic, Subscription
7+
from google.protobuf.field_mask_pb2 import FieldMask
138

149

1510
class AdminClient(ABC):
@@ -66,16 +61,3 @@ def update_subscription(
6661
@abstractmethod
6762
def delete_subscription(self, subscription_path: SubscriptionPath):
6863
"""Delete a subscription and all associated messages."""
69-
70-
71-
def make_admin_client(
72-
region: CloudRegion,
73-
credentials: Optional[Credentials] = None,
74-
client_options: Optional[ClientOptions] = None,
75-
) -> AdminClient:
76-
if client_options is None:
77-
client_options = ClientOptions(api_endpoint=regional_endpoint(region))
78-
return AdminClientImpl(
79-
AdminServiceClient(client_options=client_options, credentials=credentials),
80-
region,
81-
)

google/cloud/pubsublite/internal/wire/make_publisher.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from typing import AsyncIterator, Mapping, Optional, MutableMapping
22

3-
from google.cloud.pubsublite.admin_client import make_admin_client
3+
from google.cloud.pubsublite.make_admin_client import make_admin_client
44
from google.cloud.pubsublite.endpoints import regional_endpoint
55
from google.cloud.pubsublite.internal.wire.default_routing_policy import (
66
DefaultRoutingPolicy,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from typing import Optional
2+
3+
from google.api_core.client_options import ClientOptions
4+
5+
from google.cloud.pubsublite.admin_client import AdminClient
6+
from google.cloud.pubsublite.endpoints import regional_endpoint
7+
from google.cloud.pubsublite.internal.wire.admin_client_impl import AdminClientImpl
8+
from google.cloud.pubsublite.location import CloudRegion
9+
from google.cloud.pubsublite_v1 import AdminServiceClient
10+
from google.auth.credentials import Credentials
11+
12+
13+
def make_admin_client(
14+
region: CloudRegion,
15+
credentials: Optional[Credentials] = None,
16+
client_options: Optional[ClientOptions] = None,
17+
) -> AdminClient:
18+
if client_options is None:
19+
client_options = ClientOptions(api_endpoint=regional_endpoint(region))
20+
return AdminClientImpl(
21+
AdminServiceClient(client_options=client_options, credentials=credentials),
22+
region,
23+
)

0 commit comments

Comments
 (0)