From f7b11640b74d8c64747b33783976d6e0ab9c61c4 Mon Sep 17 00:00:00 2001 From: Dov Shlachter Date: Thu, 24 Sep 2020 11:32:03 -0700 Subject: [PATCH] fix: retriable exceptions are deterministically ordered in GAPICs (#619) Certain code patterns in the generated surface are created by iteration over data collections. This iteration order should be deterministic in order to prevent spurious deltas in the generated surface. --- .../%version/%sub/services/%service/transports/base.py.j2 | 4 +--- .../%name_%version/%sub/services/%service/async_client.py.j2 | 4 +--- .../%sub/services/%service/transports/base.py.j2 | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/transports/base.py.j2 b/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/transports/base.py.j2 index 32e6c11f9f..2053e9fe4f 100644 --- a/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/transports/base.py.j2 +++ b/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/transports/base.py.j2 @@ -89,11 +89,9 @@ class {{ service.name }}Transport(metaclass=abc.ABCMeta): {% if method.retry.max_backoff %}maximum={{ method.retry.max_backoff }},{% endif %} {% if method.retry.backoff_multiplier %}multiplier={{ method.retry.backoff_multiplier }},{% endif %} predicate=retries.if_exception_type( - {%- filter sort_lines %} - {%- for ex in method.retry.retryable_exceptions %} + {%- for ex in method.retry.retryable_exceptions|sort(attribute='__name__) %} exceptions.{{ ex.__name__ }}, {%- endfor %} - {%- endfilter %} ), ), {%- endif %} diff --git a/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 b/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 index 7368bf6943..95a250479f 100644 --- a/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 +++ b/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 @@ -199,11 +199,9 @@ class {{ service.async_client_name }}: {% if method.retry.max_backoff %}maximum={{ method.retry.max_backoff }},{% endif %} {% if method.retry.backoff_multiplier %}multiplier={{ method.retry.backoff_multiplier }},{% endif %} predicate=retries.if_exception_type( - {%- filter sort_lines %} - {%- for ex in method.retry.retryable_exceptions %} + {%- for ex in method.retry.retryable_exceptions|sort(attribue='__name__') %} exceptions.{{ ex.__name__ }}, {%- endfor %} - {%- endfilter %} ), ), {%- endif %} diff --git a/gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/base.py.j2 b/gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/base.py.j2 index 22ed87a1db..08b5c4b20b 100644 --- a/gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/base.py.j2 +++ b/gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/base.py.j2 @@ -114,11 +114,9 @@ class {{ service.name }}Transport(abc.ABC): {% if method.retry.max_backoff %}maximum={{ method.retry.max_backoff }},{% endif %} {% if method.retry.backoff_multiplier %}multiplier={{ method.retry.backoff_multiplier }},{% endif %} predicate=retries.if_exception_type( - {%- filter sort_lines %} - {%- for ex in method.retry.retryable_exceptions %} + {%- for ex in method.retry.retryable_exceptions|sort(attribute='__name__') %} exceptions.{{ ex.__name__ }}, {%- endfor %} - {%- endfilter %} ), ), {%- endif %}