Skip to content

Commit 19f4756

Browse files
authored
fix: use correct typing for retries / operations_client (#1026)
* fix: use correct typing for retries Closes #1024 * fix: import 'ClientOptions' class correctly Closes #1025 * fix: remove typing from base transport 'operations_client', repair typing for `_operations_client` attr Closes #1028.
1 parent b75758a commit 19f4756

File tree

27 files changed

+180
-148
lines changed

27 files changed

+180
-148
lines changed

packages/gapic-generator/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/client.py.j2

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ from google.auth.transport.grpc import SslCredentials # type: ignore
2222
from google.auth.exceptions import MutualTLSChannelError # type: ignore
2323
from google.oauth2 import service_account # type: ignore
2424

25+
OptionalRetry = Union[retries.Retry, object]
26+
2527
{% filter sort_lines %}
2628
{% for method in service.methods.values() %}
2729
{% for ref_type in method.flat_ref_types %}
@@ -306,7 +308,7 @@ class {{ service.client_name }}(metaclass={{ service.client_name }}Meta):
306308
requests: Iterator[{{ method.input.ident }}] = None,
307309
*,
308310
{% endif %}
309-
retry: retries.Retry = gapic_v1.method.DEFAULT,
311+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
310312
timeout: float = None,
311313
metadata: Sequence[Tuple[str, str]] = (),
312314
{% if not method.server_streaming %}

packages/gapic-generator/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/transports/base.py.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ class {{ service.name }}Transport(metaclass=abc.ABCMeta):
115115
{% if service.has_lro %}
116116

117117
@property
118-
def operations_client(self) -> operations_v1.OperationsClient:
118+
def operations_client(self):
119119
"""Return the client designed to process long-running operations."""
120120
raise NotImplementedError
121121
{% endif %}

packages/gapic-generator/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,15 @@ import pkg_resources
1111
import warnings
1212
{% endif %}
1313

14-
import google.api_core.client_options as ClientOptions # type: ignore
14+
from google.api_core.client_options import ClientOptions # type: ignore
1515
from google.api_core import exceptions as core_exceptions # type: ignore
1616
from google.api_core import gapic_v1 # type: ignore
1717
from google.api_core import retry as retries # type: ignore
1818
from google.auth import credentials as ga_credentials # type: ignore
1919
from google.oauth2 import service_account # type: ignore
2020

21+
OptionalRetry = Union[retries.Retry, object]
22+
2123
{% filter sort_lines %}
2224
{% for method in service.methods.values() %}
2325
{% for ref_type in method.flat_ref_types %}
@@ -156,7 +158,7 @@ class {{ service.async_client_name }}:
156158
requests: AsyncIterator[{{ method.input.ident }}] = None,
157159
*,
158160
{% endif %}
159-
retry: retries.Retry = gapic_v1.method.DEFAULT,
161+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
160162
timeout: float = None,
161163
metadata: Sequence[Tuple[str, str]] = (),
162164
{% if not method.server_streaming %}
@@ -331,7 +333,7 @@ class {{ service.async_client_name }}:
331333
self,
332334
request: iam_policy_pb2.SetIamPolicyRequest = None,
333335
*,
334-
retry: retries.Retry = gapic_v1.method.DEFAULT,
336+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
335337
timeout: float = None,
336338
metadata: Sequence[Tuple[str, str]] = (),
337339
) -> policy_pb2.Policy:
@@ -439,7 +441,7 @@ class {{ service.async_client_name }}:
439441
self,
440442
request: iam_policy_pb2.GetIamPolicyRequest = None,
441443
*,
442-
retry: retries.Retry = gapic_v1.method.DEFAULT,
444+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
443445
timeout: float = None,
444446
metadata: Sequence[Tuple[str, str]] = (),
445447
) -> policy_pb2.Policy:
@@ -548,7 +550,7 @@ class {{ service.async_client_name }}:
548550
self,
549551
request: iam_policy_pb2.TestIamPermissionsRequest = None,
550552
*,
551-
retry: retries.Retry = gapic_v1.method.DEFAULT,
553+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
552554
timeout: float = None,
553555
metadata: Sequence[Tuple[str, str]] = (),
554556
) -> iam_policy_pb2.TestIamPermissionsResponse:

packages/gapic-generator/gapic/templates/%namespace/%name_%version/%sub/services/%service/client.py.j2

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ from google.auth.transport.grpc import SslCredentials # type: ignore
2222
from google.auth.exceptions import MutualTLSChannelError # type: ignore
2323
from google.oauth2 import service_account # type: ignore
2424

25+
OptionalRetry = Union[retries.Retry, object]
26+
2527
{% filter sort_lines %}
2628
{% for method in service.methods.values() %}
2729
{% for ref_type in method.flat_ref_types %}
@@ -322,7 +324,7 @@ class {{ service.client_name }}(metaclass={{ service.client_name }}Meta):
322324
requests: Iterator[{{ method.input.ident }}] = None,
323325
*,
324326
{% endif %}
325-
retry: retries.Retry = gapic_v1.method.DEFAULT,
327+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
326328
timeout: float = None,
327329
metadata: Sequence[Tuple[str, str]] = (),
328330
{% if not method.server_streaming %}
@@ -495,7 +497,7 @@ class {{ service.client_name }}(metaclass={{ service.client_name }}Meta):
495497
self,
496498
request: iam_policy_pb2.SetIamPolicyRequest = None,
497499
*,
498-
retry: retries.Retry = gapic_v1.method.DEFAULT,
500+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
499501
timeout: float = None,
500502
metadata: Sequence[Tuple[str, str]] = (),
501503
) -> policy_pb2.Policy:
@@ -605,7 +607,7 @@ class {{ service.client_name }}(metaclass={{ service.client_name }}Meta):
605607
self,
606608
request: iam_policy_pb2.GetIamPolicyRequest = None,
607609
*,
608-
retry: retries.Retry = gapic_v1.method.DEFAULT,
610+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
609611
timeout: float = None,
610612
metadata: Sequence[Tuple[str, str]] = (),
611613
) -> policy_pb2.Policy:
@@ -716,7 +718,7 @@ class {{ service.client_name }}(metaclass={{ service.client_name }}Meta):
716718
self,
717719
request: iam_policy_pb2.TestIamPermissionsRequest = None,
718720
*,
719-
retry: retries.Retry = gapic_v1.method.DEFAULT,
721+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
720722
timeout: float = None,
721723
metadata: Sequence[Tuple[str, str]] = (),
722724
) -> iam_policy_pb2.TestIamPermissionsResponse:

packages/gapic-generator/gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/base.py.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ class {{ service.name }}Transport(abc.ABC):
186186
{% if service.has_lro %}
187187

188188
@property
189-
def operations_client(self) -> operations_v1.OperationsClient:
189+
def operations_client(self):
190190
"""Return the client designed to process long-running operations."""
191191
raise NotImplementedError()
192192
{% endif %}

packages/gapic-generator/gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/grpc.py.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ class {{ service.name }}GrpcTransport({{ service.name }}Transport):
109109
self._ssl_channel_credentials = ssl_channel_credentials
110110
self._stubs: Dict[str, Callable] = {}
111111
{% if service.has_lro %}
112-
self._operations_client = None
112+
self._operations_client: Optional[operations_v1.OperationsClient] = None
113113
{% endif %}
114114

115115
if api_mtls_endpoint:

packages/gapic-generator/gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/grpc_asyncio.py.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ class {{ service.grpc_asyncio_transport_name }}({{ service.name }}Transport):
155155
self._ssl_channel_credentials = ssl_channel_credentials
156156
self._stubs: Dict[str, Callable] = {}
157157
{% if service.has_lro %}
158-
self._operations_client = None
158+
self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None
159159
{% endif %}
160160

161161
if api_mtls_endpoint:

packages/gapic-generator/gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/rest.py.j2

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ from google.api_core import path_template # type: ignore
1010
from google.api_core import gapic_v1 # type: ignore
1111
from google.api_core import operations_v1
1212
from requests import __version__ as requests_version
13-
from typing import Callable, Dict, Optional, Sequence, Tuple
13+
from typing import Callable, Dict, Optional, Sequence, Tuple, Union
1414
import warnings
15+
16+
OptionalRetry = Union[retries.Retry, object]
1517
{% extends '_base.py.j2' %}
1618

1719
{% block content %}
@@ -153,7 +155,7 @@ class {{service.name}}RestTransport({{service.name}}Transport):
153155
{%- if method.http_options and not method.lro and not (method.server_streaming or method.client_streaming) %}
154156
def _{{method.name | snake_case}}(self,
155157
request: {{method.input.ident}}, *,
156-
retry: retries.Retry=gapic_v1.method.DEFAULT,
158+
retry: OptionalRetry=gapic_v1.method.DEFAULT,
157159
timeout: float=None,
158160
metadata: Sequence[Tuple[str, str]]=(),
159161
) -> {{method.output.ident}}:

packages/gapic-generator/tests/integration/goldens/asset/google/cloud/asset_v1/services/asset_service/async_client.py

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@
1919
from typing import Dict, Sequence, Tuple, Type, Union
2020
import pkg_resources
2121

22-
import google.api_core.client_options as ClientOptions # type: ignore
22+
from google.api_core.client_options import ClientOptions # type: ignore
2323
from google.api_core import exceptions as core_exceptions # type: ignore
2424
from google.api_core import gapic_v1 # type: ignore
2525
from google.api_core import retry as retries # type: ignore
2626
from google.auth import credentials as ga_credentials # type: ignore
2727
from google.oauth2 import service_account # type: ignore
2828

29+
OptionalRetry = Union[retries.Retry, object]
30+
2931
from google.api_core import operation # type: ignore
3032
from google.api_core import operation_async # type: ignore
3133
from google.cloud.asset_v1.services.asset_service import pagers
@@ -153,7 +155,7 @@ def __init__(self, *,
153155
async def export_assets(self,
154156
request: asset_service.ExportAssetsRequest = None,
155157
*,
156-
retry: retries.Retry = gapic_v1.method.DEFAULT,
158+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
157159
timeout: float = None,
158160
metadata: Sequence[Tuple[str, str]] = (),
159161
) -> operation_async.AsyncOperation:
@@ -233,7 +235,7 @@ async def list_assets(self,
233235
request: asset_service.ListAssetsRequest = None,
234236
*,
235237
parent: str = None,
236-
retry: retries.Retry = gapic_v1.method.DEFAULT,
238+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
237239
timeout: float = None,
238240
metadata: Sequence[Tuple[str, str]] = (),
239241
) -> pagers.ListAssetsAsyncPager:
@@ -321,7 +323,7 @@ async def list_assets(self,
321323
async def batch_get_assets_history(self,
322324
request: asset_service.BatchGetAssetsHistoryRequest = None,
323325
*,
324-
retry: retries.Retry = gapic_v1.method.DEFAULT,
326+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
325327
timeout: float = None,
326328
metadata: Sequence[Tuple[str, str]] = (),
327329
) -> asset_service.BatchGetAssetsHistoryResponse:
@@ -387,7 +389,7 @@ async def create_feed(self,
387389
request: asset_service.CreateFeedRequest = None,
388390
*,
389391
parent: str = None,
390-
retry: retries.Retry = gapic_v1.method.DEFAULT,
392+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
391393
timeout: float = None,
392394
metadata: Sequence[Tuple[str, str]] = (),
393395
) -> asset_service.Feed:
@@ -475,7 +477,7 @@ async def get_feed(self,
475477
request: asset_service.GetFeedRequest = None,
476478
*,
477479
name: str = None,
478-
retry: retries.Retry = gapic_v1.method.DEFAULT,
480+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
479481
timeout: float = None,
480482
metadata: Sequence[Tuple[str, str]] = (),
481483
) -> asset_service.Feed:
@@ -563,7 +565,7 @@ async def list_feeds(self,
563565
request: asset_service.ListFeedsRequest = None,
564566
*,
565567
parent: str = None,
566-
retry: retries.Retry = gapic_v1.method.DEFAULT,
568+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
567569
timeout: float = None,
568570
metadata: Sequence[Tuple[str, str]] = (),
569571
) -> asset_service.ListFeedsResponse:
@@ -647,7 +649,7 @@ async def update_feed(self,
647649
request: asset_service.UpdateFeedRequest = None,
648650
*,
649651
feed: asset_service.Feed = None,
650-
retry: retries.Retry = gapic_v1.method.DEFAULT,
652+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
651653
timeout: float = None,
652654
metadata: Sequence[Tuple[str, str]] = (),
653655
) -> asset_service.Feed:
@@ -729,7 +731,7 @@ async def delete_feed(self,
729731
request: asset_service.DeleteFeedRequest = None,
730732
*,
731733
name: str = None,
732-
retry: retries.Retry = gapic_v1.method.DEFAULT,
734+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
733735
timeout: float = None,
734736
metadata: Sequence[Tuple[str, str]] = (),
735737
) -> None:
@@ -805,7 +807,7 @@ async def search_all_resources(self,
805807
scope: str = None,
806808
query: str = None,
807809
asset_types: Sequence[str] = None,
808-
retry: retries.Retry = gapic_v1.method.DEFAULT,
810+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
809811
timeout: float = None,
810812
metadata: Sequence[Tuple[str, str]] = (),
811813
) -> pagers.SearchAllResourcesAsyncPager:
@@ -991,7 +993,7 @@ async def search_all_iam_policies(self,
991993
*,
992994
scope: str = None,
993995
query: str = None,
994-
retry: retries.Retry = gapic_v1.method.DEFAULT,
996+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
995997
timeout: float = None,
996998
metadata: Sequence[Tuple[str, str]] = (),
997999
) -> pagers.SearchAllIamPoliciesAsyncPager:
@@ -1155,7 +1157,7 @@ async def search_all_iam_policies(self,
11551157
async def analyze_iam_policy(self,
11561158
request: asset_service.AnalyzeIamPolicyRequest = None,
11571159
*,
1158-
retry: retries.Retry = gapic_v1.method.DEFAULT,
1160+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
11591161
timeout: float = None,
11601162
metadata: Sequence[Tuple[str, str]] = (),
11611163
) -> asset_service.AnalyzeIamPolicyResponse:
@@ -1217,7 +1219,7 @@ async def analyze_iam_policy(self,
12171219
async def analyze_iam_policy_longrunning(self,
12181220
request: asset_service.AnalyzeIamPolicyLongrunningRequest = None,
12191221
*,
1220-
retry: retries.Retry = gapic_v1.method.DEFAULT,
1222+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
12211223
timeout: float = None,
12221224
metadata: Sequence[Tuple[str, str]] = (),
12231225
) -> operation_async.AsyncOperation:

0 commit comments

Comments
 (0)