77{# This lives within the loop in order to ensure that this template
88 is empty if there are no paged methods.
99 #}
10- from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator
10+ from google.api_core import gapic_v1
11+ from google.api_core import retry as retries
12+ from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator, Union
13+ try:
14+ OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
15+ OptionalAsyncRetry = Union[retries.AsyncRetry, gapic_v1.method._MethodDefault, None]
16+ except AttributeError: # pragma: NO COVER
17+ OptionalRetry = Union[retries.Retry, object, None] # type: ignore
18+ OptionalAsyncRetry = Union[retries.AsyncRetry, object, None] # type: ignore
1119
1220{% filter sort_lines %}
1321{% for method in service .methods .values () | selectattr ('paged_result_field' ) %}
@@ -43,6 +51,8 @@ class {{ method.name }}Pager:
4351 request: {{ method.input.ident }},
4452 response: {{ method.output.ident }},
4553 *,
54+ retry: OptionalRetry = gapic_v1.method.DEFAULT,
55+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
4656 metadata: Sequence[Tuple[str, str]] = ()):
4757 """Instantiate the pager.
4858
@@ -53,12 +63,17 @@ class {{ method.name }}Pager:
5363 The initial request object.
5464 response ({{ method.output.ident.sphinx }}):
5565 The initial response object.
66+ retry (google.api_core.retry.Retry): Designation of what errors,
67+ if any, should be retried.
68+ timeout (float): The timeout for this request.
5669 metadata (Sequence[Tuple[str, str]]): Strings which should be
5770 sent along with the request as metadata.
5871 """
5972 self._method = method
6073 self._request = {{ method.input.ident }}(request)
6174 self._response = response
75+ self._retry = retry
76+ self._timeout = timeout
6277 self._metadata = metadata
6378
6479 def __getattr__(self, name: str) -> Any:
@@ -69,7 +84,7 @@ class {{ method.name }}Pager:
6984 yield self._response
7085 while self._response.next_page_token:
7186 self._request.page_token = self._response.next_page_token
72- self._response = self._method(self._request, metadata=self._metadata)
87+ self._response = self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
7388 yield self._response
7489
7590 {% if method .paged_result_field .map %}
@@ -113,6 +128,8 @@ class {{ method.name }}AsyncPager:
113128 request: {{ method.input.ident }},
114129 response: {{ method.output.ident }},
115130 *,
131+ retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT,
132+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
116133 metadata: Sequence[Tuple[str, str]] = ()):
117134 """Instantiates the pager.
118135
@@ -123,12 +140,17 @@ class {{ method.name }}AsyncPager:
123140 The initial request object.
124141 response ({{ method.output.ident.sphinx }}):
125142 The initial response object.
143+ retry (google.api_core.retry.AsyncRetry): Designation of what errors,
144+ if any, should be retried.
145+ timeout (float): The timeout for this request.
126146 metadata (Sequence[Tuple[str, str]]): Strings which should be
127147 sent along with the request as metadata.
128148 """
129149 self._method = method
130150 self._request = {{ method.input.ident }}(request)
131151 self._response = response
152+ self._retry = retry
153+ self._timeout = timeout
132154 self._metadata = metadata
133155
134156 def __getattr__(self, name: str) -> Any:
@@ -139,7 +161,7 @@ class {{ method.name }}AsyncPager:
139161 yield self._response
140162 while self._response.next_page_token:
141163 self._request.page_token = self._response.next_page_token
142- self._response = await self._method(self._request, metadata=self._metadata)
164+ self._response = await self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
143165 yield self._response
144166 {% if method .paged_result_field .map %}
145167 def __aiter__(self) -> Iterator[Tuple[str, {{ method.paged_result_field.type.fields.get('value').ident }}]]:
0 commit comments