From d3bc8949b93557ae6befbc8978269a727468009f Mon Sep 17 00:00:00 2001 From: peevo Date: Tue, 19 Jan 2021 23:31:46 +0300 Subject: [PATCH] Grpcio 1.34.1 compatibility --- yandexcloud/_retry_interceptor.py | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/yandexcloud/_retry_interceptor.py b/yandexcloud/_retry_interceptor.py index b81a554d..19ce5690 100644 --- a/yandexcloud/_retry_interceptor.py +++ b/yandexcloud/_retry_interceptor.py @@ -5,9 +5,9 @@ class _ClientCallDetails( - collections.namedtuple( - '_ClientCallDetails', - ('method', 'timeout', 'metadata', 'credentials', 'wait_for_ready')), + collections.namedtuple('_ClientCallDetails', + ('method', 'timeout', 'metadata', 'credentials', + 'wait_for_ready', 'compression')), grpc.ClientCallDetails): pass @@ -137,10 +137,14 @@ def retry(): @staticmethod def __adjust_timeout(client_call_details, deadline): timeout = max(deadline - time.time(), 0.) - return _ClientCallDetails( - client_call_details.method, timeout, client_call_details.metadata, - client_call_details.credentials, client_call_details.wait_for_ready) + client_call_details.method, + timeout, + client_call_details.metadata, + client_call_details.credentials, + getattr(client_call_details, 'wait_for_ready', None), + getattr(client_call_details, 'compression', None), + ) def __add_idempotency_token(self, client_call_details): return self.__append_metadata(client_call_details, self._IDEMPOTENCY_TOKEN_METADATA_KEY, str(uuid.uuid4())) @@ -164,7 +168,11 @@ def __append_metadata(client_call_details, header, value, force=False): header, value, )) - return _ClientCallDetails( - client_call_details.method, client_call_details.timeout, metadata, - client_call_details.credentials, client_call_details.wait_for_ready) + client_call_details.method, + client_call_details.timeout, + metadata, + client_call_details.credentials, + getattr(client_call_details, 'wait_for_ready', None), + getattr(client_call_details, 'compression', None), + )