Skip to content

Commit 6710fcb

Browse files
committed
use single sleep iterator for retries
1 parent 240fed0 commit 6710fcb

File tree

5 files changed

+10
-6
lines changed

5 files changed

+10
-6
lines changed

google/api_core/retry/retry_base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import time
2626

2727
from enum import Enum
28-
from typing import Any, Callable, Optional, Iterable, TYPE_CHECKING
28+
from typing import Any, Callable, Optional, Iterator, TYPE_CHECKING
2929

3030
import requests.exceptions
3131

@@ -174,7 +174,7 @@ def build_retry_error(
174174
def _retry_error_helper(
175175
exc: Exception,
176176
deadline: float | None,
177-
sleep_generator: Iterable[float],
177+
sleep_generator: Iterator[float],
178178
error_list: list[Exception],
179179
predicate_fn: Callable[[Exception], bool],
180180
on_error_fn: Callable[[Exception], None] | None,

google/api_core/retry/retry_streaming.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ def retry_target_stream(
107107
time.monotonic() + timeout if timeout is not None else None
108108
)
109109
error_list: list[Exception] = []
110+
sleep_iter = iter(sleep_generator)
110111

111112
while True:
112113
# Start a new retry loop
@@ -124,7 +125,7 @@ def retry_target_stream(
124125
next_sleep = _retry_error_helper(
125126
exc,
126127
deadline,
127-
sleep_generator,
128+
sleep_iter,
128129
error_list,
129130
predicate,
130131
on_error,

google/api_core/retry/retry_streaming_async.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ async def retry_target_stream(
109109
deadline = time.monotonic() + timeout if timeout else None
110110
# keep track of retryable exceptions we encounter to pass in to exception_factory
111111
error_list: list[Exception] = []
112+
sleep_iter = iter(sleep_generator)
112113
target_is_generator: bool | None = None
113114

114115
while True:
@@ -177,7 +178,7 @@ async def retry_target_stream(
177178
next_sleep = _retry_error_helper(
178179
exc,
179180
deadline,
180-
sleep_generator,
181+
sleep_iter,
181182
error_list,
182183
predicate,
183184
on_error,

google/api_core/retry/retry_unary.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ def retry_target(
138138

139139
deadline = time.monotonic() + timeout if timeout is not None else None
140140
error_list: list[Exception] = []
141+
sleep_iter = iter(sleep_generator)
141142

142143
while True:
143144
try:
@@ -153,7 +154,7 @@ def retry_target(
153154
next_sleep = _retry_error_helper(
154155
exc,
155156
deadline,
156-
sleep_generator,
157+
sleep_iter,
157158
error_list,
158159
predicate,
159160
on_error,

google/api_core/retry/retry_unary_async.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ async def retry_target(
149149

150150
deadline = time.monotonic() + timeout if timeout is not None else None
151151
error_list: list[Exception] = []
152+
sleep_iter = iter(sleep_generator)
152153

153154
while True:
154155
try:
@@ -160,7 +161,7 @@ async def retry_target(
160161
next_sleep = _retry_error_helper(
161162
exc,
162163
deadline,
163-
sleep_generator,
164+
sleep_iter,
164165
error_list,
165166
predicate,
166167
on_error,

0 commit comments

Comments
 (0)