From 8bf09f5a89fb193a40183626c09c84cf65f76dd5 Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Mon, 8 Apr 2024 16:01:28 +0000 Subject: [PATCH 1/3] feat: add google.api_core.gapic_v1.version_header --- google/api_core/version_header.py | 29 +++++++++++++++++++++++++++++ tests/unit/test_version_header.py | 23 +++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 google/api_core/version_header.py create mode 100644 tests/unit/test_version_header.py diff --git a/google/api_core/version_header.py b/google/api_core/version_header.py new file mode 100644 index 00000000..c4011330 --- /dev/null +++ b/google/api_core/version_header.py @@ -0,0 +1,29 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +API_VERSION_METADATA_KEY = "x-goog-api-version" + + +def to_api_version_header(version_identifier): + """Returns the API Version header for the given `version_identifier`. + + Args: + version_identifier (str): The version identifier to be used in the + tuple returned. + + Returns: + Tuple(str, str): A tuple containing the API Version metadata key and + value. + """ + return (API_VERSION_METADATA_KEY, version_identifier) diff --git a/tests/unit/test_version_header.py b/tests/unit/test_version_header.py new file mode 100644 index 00000000..ea7028e2 --- /dev/null +++ b/tests/unit/test_version_header.py @@ -0,0 +1,23 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest + +from google.api_core import version_header + + +@pytest.mark.parametrize("version_identifier", ["some_value", ""]) +def test_to_api_version_header(version_identifier): + value = version_header.to_api_version_header(version_identifier) + assert value == (version_header.API_VERSION_METADATA_KEY, version_identifier) From 7b84e3410508ee337a6c551212f1d1df0a8c3cb5 Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Sat, 27 Apr 2024 15:21:00 +0000 Subject: [PATCH 2/3] fix mypy --- noxfile.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/noxfile.py b/noxfile.py index 2c7ec6c7..8fbcaec0 100644 --- a/noxfile.py +++ b/noxfile.py @@ -175,12 +175,12 @@ def pytype(session): def mypy(session): """Run type-checking.""" session.install(".[grpc]", "mypy") - # Exclude types-protobuf==4.24.0.20240106 - # See https://github.com/python/typeshed/issues/11254 session.install( "types-setuptools", "types-requests", - "types-protobuf!=4.24.0.20240106", + # TODO(https://github.com/googleapis/python-api-core/issues/642): + # Use the latest version of types-protobuf. + "types-protobuf<5", "types-mock", "types-dataclasses", ) From 60b33e60b795715cca9df43edd2d8ed28cd5353c Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Mon, 29 Apr 2024 20:40:17 +0000 Subject: [PATCH 3/3] clarify comment --- google/api_core/version_header.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google/api_core/version_header.py b/google/api_core/version_header.py index c4011330..cf1972ac 100644 --- a/google/api_core/version_header.py +++ b/google/api_core/version_header.py @@ -16,7 +16,7 @@ def to_api_version_header(version_identifier): - """Returns the API Version header for the given `version_identifier`. + """Returns data for the API Version header for the given `version_identifier`. Args: version_identifier (str): The version identifier to be used in the