Skip to content

Commit 8b3b80f

Browse files
authored
fix: fix typing issue with gRPC metadata when key ends in -bin (#2251)
1 parent 5a37094 commit 8b3b80f

File tree

35 files changed

+2312
-1472
lines changed

35 files changed

+2312
-1472
lines changed

Diff for: gapic/samplegen/samplegen.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1107,7 +1107,7 @@ def _fill_sample_metadata(sample: dict, api_schema: api.API):
11071107
parameters.append(snippet_metadata_pb2.ClientMethod.Parameter( # type: ignore
11081108
name="timeout", type="float"))
11091109
parameters.append(snippet_metadata_pb2.ClientMethod.Parameter( # type: ignore
1110-
name="metadata", type="Sequence[Tuple[str, str]"))
1110+
name="metadata", type="Sequence[Tuple[str, Union[str, bytes]]]"))
11111111

11121112
return snippet_metadata
11131113

Diff for: gapic/templates/%namespace/%name_%version/%sub/services/%service/_shared_macros.j2

+5-3
Original file line numberDiff line numberDiff line change
@@ -454,9 +454,11 @@ class _{{ name }}(_Base{{ service.name }}RestTransport._Base{{name}}, {{ async_m
454454

455455
{% macro client_method_metadata_argument() %}metadata: {{ client_method_metadata_type() }}{% endmacro %}
456456

457-
{% macro client_method_metadata_type() %}Sequence[Tuple[str, str]]{% endmacro %}
457+
{% macro client_method_metadata_type() %}Sequence[Tuple[str, Union[str, bytes]]]{% endmacro %}
458458

459459
{% macro client_method_metadata_default_value() %}(){% endmacro %}
460460

461-
{% macro client_method_metadata_argument_doc() %}metadata ({{ client_method_metadata_type() }}): Strings which should be
462-
sent along with the request as metadata.{% endmacro %}
461+
{% macro client_method_metadata_argument_doc() %}metadata ({{ client_method_metadata_type() }}): Key/value pairs which should be
462+
sent along with the request as metadata. Normally, each value must be of type `str`,
463+
but for metadata keys ending with the suffix `-bin`, the corresponding values must
464+
be of type `bytes`.{% endmacro %}

Diff for: tests/integration/goldens/asset/google/cloud/asset_v1/services/asset_service/async_client.py

+120-72
Large diffs are not rendered by default.

Diff for: tests/integration/goldens/asset/google/cloud/asset_v1/services/asset_service/client.py

+120-72
Large diffs are not rendered by default.

Diff for: tests/integration/goldens/asset/google/cloud/asset_v1/services/asset_service/pagers.py

+70-42
Large diffs are not rendered by default.

Diff for: tests/integration/goldens/asset/google/cloud/asset_v1/services/asset_service/transports/rest.py

+145-97
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)