MINGW-packages/mingw-w64-python-google-api-core/001-add-support-for-protobuf-5.x.patch
مهدي شينون (Mehdi Chinoune) a6d528be61 python-google-api-core: update to 2.19.0
2024-05-24 07:03:17 +01:00

178 lines
7.4 KiB
Diff

--- a/google/api_core/operations_v1/transports/rest.py
+++ b/google/api_core/operations_v1/transports/rest.py
@@ -29,9 +29,13 @@
from google.longrunning import operations_pb2 # type: ignore
from google.protobuf import empty_pb2 # type: ignore
from google.protobuf import json_format # type: ignore
+import google.protobuf
+
import grpc
from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO, OperationsTransport
+PROTOBUF_VERSION = google.protobuf.__version__
+
OptionalRetry = Union[retries.Retry, object]
DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
@@ -184,11 +188,22 @@ def _list_operations(
"google.longrunning.Operations.ListOperations"
]
- request_kwargs = json_format.MessageToDict(
- request,
- preserving_proto_field_name=True,
- including_default_value_fields=True,
- )
+ # For backwards compatibility with protobuf 3.x 4.x
+ # Remove once support for protobuf 3.x and 4.x is dropped
+ # https://github.com/googleapis/python-api-core/issues/643
+ if PROTOBUF_VERSION[0:2] in ["3.", "4."]:
+ request_kwargs = json_format.MessageToDict(
+ request,
+ preserving_proto_field_name=True,
+ including_default_value_fields=True, # type: ignore # backward compatibility
+ )
+ else:
+ request_kwargs = json_format.MessageToDict(
+ request,
+ preserving_proto_field_name=True,
+ always_print_fields_with_no_presence=True,
+ )
+
transcoded_request = path_template.transcode(http_options, **request_kwargs)
uri = transcoded_request["uri"]
@@ -199,7 +214,6 @@ def _list_operations(
json_format.ParseDict(transcoded_request["query_params"], query_params_request)
query_params = json_format.MessageToDict(
query_params_request,
- including_default_value_fields=False,
preserving_proto_field_name=False,
use_integers_for_enums=False,
)
@@ -265,11 +279,22 @@ def _get_operation(
"google.longrunning.Operations.GetOperation"
]
- request_kwargs = json_format.MessageToDict(
- request,
- preserving_proto_field_name=True,
- including_default_value_fields=True,
- )
+ # For backwards compatibility with protobuf 3.x 4.x
+ # Remove once support for protobuf 3.x and 4.x is dropped
+ # https://github.com/googleapis/python-api-core/issues/643
+ if PROTOBUF_VERSION[0:2] in ["3.", "4."]:
+ request_kwargs = json_format.MessageToDict(
+ request,
+ preserving_proto_field_name=True,
+ including_default_value_fields=True, # type: ignore # backward compatibility
+ )
+ else:
+ request_kwargs = json_format.MessageToDict(
+ request,
+ preserving_proto_field_name=True,
+ always_print_fields_with_no_presence=True,
+ )
+
transcoded_request = path_template.transcode(http_options, **request_kwargs)
uri = transcoded_request["uri"]
@@ -280,7 +305,6 @@ def _get_operation(
json_format.ParseDict(transcoded_request["query_params"], query_params_request)
query_params = json_format.MessageToDict(
query_params_request,
- including_default_value_fields=False,
preserving_proto_field_name=False,
use_integers_for_enums=False,
)
@@ -339,11 +363,21 @@ def _delete_operation(
"google.longrunning.Operations.DeleteOperation"
]
- request_kwargs = json_format.MessageToDict(
- request,
- preserving_proto_field_name=True,
- including_default_value_fields=True,
- )
+ # For backwards compatibility with protobuf 3.x 4.x
+ # Remove once support for protobuf 3.x and 4.x is dropped
+ # https://github.com/googleapis/python-api-core/issues/643
+ if PROTOBUF_VERSION[0:2] in ["3.", "4."]:
+ request_kwargs = json_format.MessageToDict(
+ request,
+ preserving_proto_field_name=True,
+ including_default_value_fields=True, # type: ignore # backward compatibility
+ )
+ else:
+ request_kwargs = json_format.MessageToDict(
+ request,
+ preserving_proto_field_name=True,
+ always_print_fields_with_no_presence=True,
+ )
transcoded_request = path_template.transcode(http_options, **request_kwargs)
uri = transcoded_request["uri"]
@@ -354,7 +388,6 @@ def _delete_operation(
json_format.ParseDict(transcoded_request["query_params"], query_params_request)
query_params = json_format.MessageToDict(
query_params_request,
- including_default_value_fields=False,
preserving_proto_field_name=False,
use_integers_for_enums=False,
)
@@ -411,11 +444,21 @@ def _cancel_operation(
"google.longrunning.Operations.CancelOperation"
]
- request_kwargs = json_format.MessageToDict(
- request,
- preserving_proto_field_name=True,
- including_default_value_fields=True,
- )
+ # For backwards compatibility with protobuf 3.x 4.x
+ # Remove once support for protobuf 3.x and 4.x is dropped
+ # https://github.com/googleapis/python-api-core/issues/643
+ if PROTOBUF_VERSION[0:2] in ["3.", "4."]:
+ request_kwargs = json_format.MessageToDict(
+ request,
+ preserving_proto_field_name=True,
+ including_default_value_fields=True, # type: ignore # backward compatibility
+ )
+ else:
+ request_kwargs = json_format.MessageToDict(
+ request,
+ preserving_proto_field_name=True,
+ always_print_fields_with_no_presence=True,
+ )
transcoded_request = path_template.transcode(http_options, **request_kwargs)
# Jsonify the request body
@@ -423,7 +466,6 @@ def _cancel_operation(
json_format.ParseDict(transcoded_request["body"], body_request)
body = json_format.MessageToDict(
body_request,
- including_default_value_fields=False,
preserving_proto_field_name=False,
use_integers_for_enums=False,
)
@@ -435,7 +477,6 @@ def _cancel_operation(
json_format.ParseDict(transcoded_request["query_params"], query_params_request)
query_params = json_format.MessageToDict(
query_params_request,
- including_default_value_fields=False,
preserving_proto_field_name=False,
use_integers_for_enums=False,
)
--- a/setup.py
+++ b/setup.py
@@ -30,7 +30,7 @@
release_status = "Development Status :: 5 - Production/Stable"
dependencies = [
"googleapis-common-protos >= 1.56.2, < 2.0.dev0",
- "protobuf>=3.19.5,<5.0.0.dev0,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5",
+ "protobuf>=3.19.5,<6.0.0.dev0,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5",
"proto-plus >= 1.22.3, <2.0.0dev",
"google-auth >= 2.14.1, < 3.0.dev0",
"requests >= 2.18.0, < 3.0.0.dev0",