Skip to content

Commit aa6c6b7

Browse files
committed
revert whitespace
1 parent c892809 commit aa6c6b7

29 files changed

Lines changed: 19 additions & 952 deletions

File tree

packages/gapic-generator/gapic/templates/%namespace/%name_%version/%sub/_compat.py.j2

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
{% block content %}
44

55
"""A compatibility module for older versions of google-api-core."""
6+
{% set has_auto_populated_fields = api.all_method_settings.values()|map(attribute="auto_populated_fields", default=[])|select|list %}
67
{# TODO(https://github.com/googleapis/google-cloud-python/issues/17813):
78
Clean up this file/functions when the minimum supported version of
89
google-api-core has the functions in `_compat.py.j2`. #}
@@ -12,6 +13,7 @@ falling back to the local implementation if not present. #}
1213
{# TODO(https://github.com/googleapis/google-cloud-python/issues/17883):
1314
Backfill compatibility functions being removed from the client layer. #}
1415

16+
{% if has_auto_populated_fields %}
1517
from typing import Union
1618
import uuid
1719

@@ -61,4 +63,5 @@ def setup_request_id(
6163
else:
6264
if not getattr(request, field_name, None):
6365
setattr(request, field_name, str(uuid.uuid4()))
66+
{% endif %}
6467
{% endblock %}

packages/gapic-generator/gapic/templates/tests/unit/gapic/%name_%version/%sub/test_%service.py.j2

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ CRED_INFO_STRING = json.dumps(CRED_INFO_JSON)
111111
_UUID4_RE = re.compile(r"{{ uuid4_re }}")
112112
{% endif %}
113113

114+
114115
async def mock_async_gen(data, chunk_size=1):
115116
for i in range(0, len(data)): # pragma: NO COVER
116117
chunk = data[i : i + chunk_size]

packages/gapic-generator/gapic/templates/tests/unit/gapic/%name_%version/%sub/test_compat.py.j2

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
{% block content %}
44

5+
{% set has_auto_populated_fields = api.all_method_settings.values()|map(attribute="auto_populated_fields", default=[])|select|list %}
56
"""Tests for the compatibility module for older versions of google-api-core."""
67
{# TODO(https://github.com/googleapis/google-cloud-python/issues/17813):
78
Clean up this file/tests when the minimum supported version of
@@ -10,6 +11,7 @@ google-api-core has the functions in `_compat.py.j2`. #}
1011
Backfill compatibility functions tests being removed from the client layer. #}
1112

1213

14+
{% if has_auto_populated_fields %}
1315
import re
1416
import pytest
1517

@@ -96,4 +98,5 @@ def test_setup_request_id(request_obj, is_proto3_optional, expected):
9698
else:
9799
assert value == expected
98100

101+
{% endif %}
99102
{% endblock %}

packages/gapic-generator/tests/integration/goldens/asset/google/cloud/asset_v1/_compat.py

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -14,53 +14,3 @@
1414
# limitations under the License.
1515
#
1616
"""A compatibility module for older versions of google-api-core."""
17-
18-
from typing import Union
19-
import uuid
20-
21-
import google.protobuf.message
22-
23-
24-
def setup_request_id(
25-
request: Union[google.protobuf.message.Message, dict, None],
26-
field_name: str,
27-
is_proto3_optional: bool,
28-
) -> None:
29-
"""Populate a UUID4 field in the request if it is not already set.
30-
31-
This helper is used to ensure request idempotency by automatically
32-
generating a unique identifier (such as `request_id`) for requests
33-
that support it. If a request is retried, the same identifier can be
34-
sent on subsequent retries, allowing the server to recognize the retried
35-
request and prevent duplicate processing (e.g., creating duplicate
36-
resources).
37-
38-
Args:
39-
request (Union[google.protobuf.message.Message, dict]): The
40-
request object.
41-
field_name (str): The name of the field to populate.
42-
is_proto3_optional (bool): Whether the field is proto3 optional.
43-
"""
44-
if request is None:
45-
return
46-
47-
if isinstance(request, dict):
48-
if is_proto3_optional:
49-
if field_name not in request or request[field_name] is None:
50-
request[field_name] = str(uuid.uuid4())
51-
elif not request.get(field_name):
52-
request[field_name] = str(uuid.uuid4())
53-
return
54-
55-
if is_proto3_optional:
56-
try:
57-
# Pure protobuf messages
58-
if not request.HasField(field_name):
59-
setattr(request, field_name, str(uuid.uuid4()))
60-
except (AttributeError, ValueError):
61-
# Proto-plus messages or other objects
62-
if not getattr(request, field_name, None):
63-
setattr(request, field_name, str(uuid.uuid4()))
64-
else:
65-
if not getattr(request, field_name, None):
66-
setattr(request, field_name, str(uuid.uuid4()))

packages/gapic-generator/tests/integration/goldens/asset/tests/unit/gapic/asset_v1/test_asset_service.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
}
7878
CRED_INFO_STRING = json.dumps(CRED_INFO_JSON)
7979

80+
8081
async def mock_async_gen(data, chunk_size=1):
8182
for i in range(0, len(data)): # pragma: NO COVER
8283
chunk = data[i : i + chunk_size]

packages/gapic-generator/tests/integration/goldens/asset/tests/unit/gapic/asset_v1/test_compat.py

Lines changed: 0 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -14,89 +14,3 @@
1414
# limitations under the License.
1515
#
1616
"""Tests for the compatibility module for older versions of google-api-core."""
17-
18-
19-
import re
20-
import pytest
21-
22-
from google.cloud.asset_v1._compat import setup_request_id
23-
24-
class MockRequest:
25-
def __init__(self, **kwargs):
26-
for k, v in kwargs.items():
27-
setattr(self, k, v)
28-
29-
def __contains__(self, key):
30-
return hasattr(self, key)
31-
32-
33-
class MockProtoRequest:
34-
def __init__(self, **kwargs):
35-
for k, v in kwargs.items():
36-
setattr(self, k, v)
37-
38-
def HasField(self, key):
39-
return hasattr(self, key)
40-
41-
42-
class MockValueErrorRequest:
43-
def HasField(self, key):
44-
raise ValueError("Mismatched field")
45-
46-
def __contains__(self, key):
47-
return hasattr(self, key)
48-
49-
UUID_REGEX = r"[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}"
50-
51-
@pytest.mark.parametrize(
52-
"request_obj, is_proto3_optional, expected",
53-
[
54-
(MockRequest(), True, "uuid"),
55-
(MockRequest(request_id="already_set"), True, "already_set"),
56-
(MockRequest(request_id=""), False, "uuid"),
57-
(MockRequest(request_id="already_set"), False, "already_set"),
58-
(MockProtoRequest(), True, "uuid"),
59-
(MockProtoRequest(request_id="already_set"), True, "already_set"),
60-
(MockValueErrorRequest(), True, "uuid"),
61-
({}, True, "uuid"),
62-
({"request_id": None}, True, "uuid"),
63-
({"request_id": "already_set"}, True, "already_set"),
64-
({"request_id": ""}, False, "uuid"),
65-
({"request_id": None}, False, "uuid"),
66-
({"request_id": "already_set"}, False, "already_set"),
67-
(None, True, "none"),
68-
],
69-
ids=[
70-
"proto3_optional_not_in_request",
71-
"proto3_optional_already_in_request",
72-
"non_proto3_optional_empty",
73-
"non_proto3_optional_already_set",
74-
"proto3_optional_not_in_request_proto",
75-
"proto3_optional_already_in_request_proto",
76-
"value_error_fallback",
77-
"dict_proto3_optional_not_in_request",
78-
"dict_proto3_optional_value_none",
79-
"dict_proto3_optional_already_in_request",
80-
"dict_non_proto3_optional_empty",
81-
"dict_non_proto3_optional_value_none",
82-
"dict_non_proto3_optional_already_set",
83-
"none_request",
84-
],
85-
)
86-
def test_setup_request_id(request_obj, is_proto3_optional, expected):
87-
setup_request_id(request_obj, "request_id", is_proto3_optional)
88-
89-
if expected == "none":
90-
assert request_obj is None
91-
return
92-
93-
value = (
94-
request_obj["request_id"]
95-
if isinstance(request_obj, dict)
96-
else request_obj.request_id
97-
)
98-
99-
if expected == "uuid":
100-
assert re.match(UUID_REGEX, value)
101-
else:
102-
assert value == expected

packages/gapic-generator/tests/integration/goldens/credentials/google/iam/credentials_v1/_compat.py

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -14,53 +14,3 @@
1414
# limitations under the License.
1515
#
1616
"""A compatibility module for older versions of google-api-core."""
17-
18-
from typing import Union
19-
import uuid
20-
21-
import google.protobuf.message
22-
23-
24-
def setup_request_id(
25-
request: Union[google.protobuf.message.Message, dict, None],
26-
field_name: str,
27-
is_proto3_optional: bool,
28-
) -> None:
29-
"""Populate a UUID4 field in the request if it is not already set.
30-
31-
This helper is used to ensure request idempotency by automatically
32-
generating a unique identifier (such as `request_id`) for requests
33-
that support it. If a request is retried, the same identifier can be
34-
sent on subsequent retries, allowing the server to recognize the retried
35-
request and prevent duplicate processing (e.g., creating duplicate
36-
resources).
37-
38-
Args:
39-
request (Union[google.protobuf.message.Message, dict]): The
40-
request object.
41-
field_name (str): The name of the field to populate.
42-
is_proto3_optional (bool): Whether the field is proto3 optional.
43-
"""
44-
if request is None:
45-
return
46-
47-
if isinstance(request, dict):
48-
if is_proto3_optional:
49-
if field_name not in request or request[field_name] is None:
50-
request[field_name] = str(uuid.uuid4())
51-
elif not request.get(field_name):
52-
request[field_name] = str(uuid.uuid4())
53-
return
54-
55-
if is_proto3_optional:
56-
try:
57-
# Pure protobuf messages
58-
if not request.HasField(field_name):
59-
setattr(request, field_name, str(uuid.uuid4()))
60-
except (AttributeError, ValueError):
61-
# Proto-plus messages or other objects
62-
if not getattr(request, field_name, None):
63-
setattr(request, field_name, str(uuid.uuid4()))
64-
else:
65-
if not getattr(request, field_name, None):
66-
setattr(request, field_name, str(uuid.uuid4()))

packages/gapic-generator/tests/integration/goldens/credentials/tests/unit/gapic/credentials_v1/test_compat.py

Lines changed: 0 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -14,89 +14,3 @@
1414
# limitations under the License.
1515
#
1616
"""Tests for the compatibility module for older versions of google-api-core."""
17-
18-
19-
import re
20-
import pytest
21-
22-
from google.iam.credentials_v1._compat import setup_request_id
23-
24-
class MockRequest:
25-
def __init__(self, **kwargs):
26-
for k, v in kwargs.items():
27-
setattr(self, k, v)
28-
29-
def __contains__(self, key):
30-
return hasattr(self, key)
31-
32-
33-
class MockProtoRequest:
34-
def __init__(self, **kwargs):
35-
for k, v in kwargs.items():
36-
setattr(self, k, v)
37-
38-
def HasField(self, key):
39-
return hasattr(self, key)
40-
41-
42-
class MockValueErrorRequest:
43-
def HasField(self, key):
44-
raise ValueError("Mismatched field")
45-
46-
def __contains__(self, key):
47-
return hasattr(self, key)
48-
49-
UUID_REGEX = r"[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}"
50-
51-
@pytest.mark.parametrize(
52-
"request_obj, is_proto3_optional, expected",
53-
[
54-
(MockRequest(), True, "uuid"),
55-
(MockRequest(request_id="already_set"), True, "already_set"),
56-
(MockRequest(request_id=""), False, "uuid"),
57-
(MockRequest(request_id="already_set"), False, "already_set"),
58-
(MockProtoRequest(), True, "uuid"),
59-
(MockProtoRequest(request_id="already_set"), True, "already_set"),
60-
(MockValueErrorRequest(), True, "uuid"),
61-
({}, True, "uuid"),
62-
({"request_id": None}, True, "uuid"),
63-
({"request_id": "already_set"}, True, "already_set"),
64-
({"request_id": ""}, False, "uuid"),
65-
({"request_id": None}, False, "uuid"),
66-
({"request_id": "already_set"}, False, "already_set"),
67-
(None, True, "none"),
68-
],
69-
ids=[
70-
"proto3_optional_not_in_request",
71-
"proto3_optional_already_in_request",
72-
"non_proto3_optional_empty",
73-
"non_proto3_optional_already_set",
74-
"proto3_optional_not_in_request_proto",
75-
"proto3_optional_already_in_request_proto",
76-
"value_error_fallback",
77-
"dict_proto3_optional_not_in_request",
78-
"dict_proto3_optional_value_none",
79-
"dict_proto3_optional_already_in_request",
80-
"dict_non_proto3_optional_empty",
81-
"dict_non_proto3_optional_value_none",
82-
"dict_non_proto3_optional_already_set",
83-
"none_request",
84-
],
85-
)
86-
def test_setup_request_id(request_obj, is_proto3_optional, expected):
87-
setup_request_id(request_obj, "request_id", is_proto3_optional)
88-
89-
if expected == "none":
90-
assert request_obj is None
91-
return
92-
93-
value = (
94-
request_obj["request_id"]
95-
if isinstance(request_obj, dict)
96-
else request_obj.request_id
97-
)
98-
99-
if expected == "uuid":
100-
assert re.match(UUID_REGEX, value)
101-
else:
102-
assert value == expected

packages/gapic-generator/tests/integration/goldens/credentials/tests/unit/gapic/credentials_v1/test_iam_credentials.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
}
6868
CRED_INFO_STRING = json.dumps(CRED_INFO_JSON)
6969

70+
7071
async def mock_async_gen(data, chunk_size=1):
7172
for i in range(0, len(data)): # pragma: NO COVER
7273
chunk = data[i : i + chunk_size]

0 commit comments

Comments
 (0)