Let us walk on the 3-isogeny graph
Loading...
Searching...
No Matches
BaseRetrying Class Reference
Inheritance diagram for BaseRetrying:
Collaboration diagram for BaseRetrying:

Public Member Functions

 __init__ (self, t.Callable[[t.Union[int, float]], None] sleep=sleep, "StopBaseT" stop=stop_never, "WaitBaseT" wait=wait_none(), "RetryBaseT" retry=retry_if_exception_type(), t.Callable[["RetryCallState"], None] before=before_nothing, t.Callable[["RetryCallState"], None] after=after_nothing, t.Optional[t.Callable[["RetryCallState"], None]] before_sleep=None, bool reraise=False, t.Type[RetryError] retry_error_cls=RetryError, t.Optional[t.Callable[["RetryCallState"], t.Any]] retry_error_callback=None)
 
"BaseRetrying" copy (self, t.Union[t.Callable[[t.Union[int, float]], None], object] sleep=_unset, t.Union["StopBaseT", object] stop=_unset, t.Union["WaitBaseT", object] wait=_unset, t.Union[retry_base, object] retry=_unset, t.Union[t.Callable[["RetryCallState"], None], object] before=_unset, t.Union[t.Callable[["RetryCallState"], None], object] after=_unset, t.Union[t.Optional[t.Callable[["RetryCallState"], None]], object] before_sleep=_unset, t.Union[bool, object] reraise=_unset, t.Union[t.Type[RetryError], object] retry_error_cls=_unset, t.Union[t.Optional[t.Callable[["RetryCallState"], t.Any]], object] retry_error_callback=_unset)
 
str __repr__ (self)
 
t.Dict[str, t.Any] statistics (self)
 
WrappedFn wraps (self, WrappedFn f)
 
None begin (self)
 
t.Union[DoAttempt, DoSleep, t.Any] iter (self, "RetryCallState" retry_state)
 
t.Generator[AttemptManager, None, None__iter__ (self)
 
WrappedFnReturnT __call__ (self, t.Callable[..., WrappedFnReturnT] fn, *t.Any args, **t.Any kwargs)
 

Data Fields

 sleep
 
 stop
 
 wait
 
 retry
 
 before
 
 after
 
 before_sleep
 
 reraise
 
 retry_error_cls
 
 retry_error_callback
 

Protected Attributes

 _local
 

Detailed Description

Definition at line 191 of file __init__.py.

Constructor & Destructor Documentation

◆ __init__()

__init__ (   self,
t.Callable[[t.Union[int, float]], None]   sleep = sleep,
"StopBaseT"   stop = stop_never,
"WaitBaseT"   wait = wait_none(),
"RetryBaseT"   retry = retry_if_exception_type(),
t.Callable[["RetryCallState"], None]   before = before_nothing,
t.Callable[["RetryCallState"], None]   after = after_nothing,
t.Optional[t.Callable[["RetryCallState"], None]]   before_sleep = None,
bool   reraise = False,
t.Type[RetryError]   retry_error_cls = RetryError,
t.Optional[t.Callable[["RetryCallState"], t.Any]]   retry_error_callback = None 
)

Reimplemented in TornadoRetrying, and AsyncRetrying.

Definition at line 192 of file __init__.py.

204 ):
205 self.sleep = sleep
206 self.stop = stop
207 self.wait = wait
208 self.retry = retry
209 self.before = before
210 self.after = after
211 self.before_sleep = before_sleep
212 self.reraise = reraise
213 self._local = threading.local()
214 self.retry_error_cls = retry_error_cls
215 self.retry_error_callback = retry_error_callback
216
for i

References i.

Referenced by Protocol.__init_subclass__().

Here is the caller graph for this function:

Member Function Documentation

◆ __call__()

WrappedFnReturnT __call__ (   self,
t.Callable[..., WrappedFnReturnT fn,
*t.Any  args,
**t.Any  kwargs 
)

Reimplemented in TornadoRetrying, Retrying, and AsyncRetrying.

Definition at line 359 of file __init__.py.

364 ) -> WrappedFnReturnT:
365 pass
366
367

References i.

◆ __iter__()

t.Generator[AttemptManager, None, None] __iter__ (   self)

Reimplemented in AsyncRetrying.

Definition at line 344 of file __init__.py.

344 def __iter__(self) -> t.Generator[AttemptManager, None, None]:
345 self.begin()
346
347 retry_state = RetryCallState(self, fn=None, args=(), kwargs={})
348 while True:
349 do = self.iter(retry_state=retry_state)
350 if isinstance(do, DoAttempt):
351 yield AttemptManager(retry_state=retry_state)
352 elif isinstance(do, DoSleep):
354 self.sleep(do)
355 else:
356 break
357

References Bar.begin, BaseRetrying.begin(), i, BaseRetrying.iter(), RetryAction.sleep, BaseRetrying.sleep, AsyncRetrying.sleep, TornadoRetrying.sleep, and Retry.sleep().

Here is the call graph for this function:

◆ __repr__()

str __repr__ (   self)

Definition at line 244 of file __init__.py.

244 def __repr__(self) -> str:
245 return (
246 f"<{self.__class__.__name__} object at 0x{id(self):x} ("
247 f"stop={self.stop}, "
248 f"wait={self.wait}, "
249 f"sleep={self.sleep}, "
250 f"retry={self.retry}, "
251 f"before={self.before}, "
252 f"after={self.after})>"
253 )
254

◆ begin()

None begin (   self)

Definition at line 301 of file __init__.py.

301 def begin(self) -> None:
302 self.statistics.clear()
303 self.statistics["start_time"] = time.monotonic()
304 self.statistics["attempt_number"] = 1
305 self.statistics["idle_for"] = 0
306
clear
Definition prime_search.m:1

References clear, i, and BaseRetrying.statistics().

Referenced by AsyncRetrying.__aiter__(), TornadoRetrying.__call__(), Retrying.__call__(), AsyncRetrying.__call__(), BaseRetrying.__iter__(), and Bar.__rich_console__().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ copy()

"BaseRetrying" copy (   self,
t.Union[t.Callable[[t.Union[int, float]], None], object]   sleep = _unset,
t.Union["StopBaseT", object]   stop = _unset,
t.Union["WaitBaseT", object]   wait = _unset,
t.Union[retry_base, object]   retry = _unset,
t.Union[t.Callable[["RetryCallState"], None], object]   before = _unset,
t.Union[t.Callable[["RetryCallState"], None], object]   after = _unset,
t.Union[t.Optional[t.Callable[["RetryCallState"], None]], object]   before_sleep = _unset,
t.Union[bool, object]   reraise = _unset,
t.Union[t.Type[RetryError], object]   retry_error_cls = _unset,
t.Union[t.Optional[t.Callable[["RetryCallState"], t.Any]], object]   retry_error_callback = _unset 
)
Copy this object with some parameters changed if needed.

Definition at line 217 of file __init__.py.

229 ) -> "BaseRetrying":
230 """Copy this object with some parameters changed if needed."""
231 return self.__class__(
232 sleep=_first_set(sleep, self.sleep),
233 stop=_first_set(stop, self.stop),
234 wait=_first_set(wait, self.wait),
235 retry=_first_set(retry, self.retry),
236 before=_first_set(before, self.before),
237 after=_first_set(after, self.after),
238 before_sleep=_first_set(before_sleep, self.before_sleep),
239 reraise=_first_set(reraise, self.reraise),
240 retry_error_cls=_first_set(retry_error_cls, self.retry_error_cls),
241 retry_error_callback=_first_set(retry_error_callback, self.retry_error_callback),
242 )
243

References FormatControl.__class__, _InstallRequirementBackedCandidate.__class__, AlreadyInstalledCandidate.__class__, ExtrasCandidate.__class__, OrderedDict.__class__, InfinityType.__class__, NegativeInfinityType.__class__, _IndividualSpecifier.__class__, Distribution.__class__, ParseExpression.__class__, ParamSpec.__class__, _ConcatenateGenericAlias.__class__, _UnpackAlias.__class__, TypeVarTuple.__class__, PoolError.__class__, RequestError.__class__, pip._vendor.tenacity._first_set(), BaseRetrying.after, BaseRetrying.before, BaseRetrying.before_sleep, i, RetryError.reraise(), BaseRetrying.reraise, BaseRetrying.retry, BaseRetrying.retry_error_callback, BaseRetrying.retry_error_cls, RetryAction.sleep, BaseRetrying.sleep, AsyncRetrying.sleep, TornadoRetrying.sleep, Retry.sleep(), Progress.stop(), _RefreshThread.stop(), Live.stop(), Status.stop(), BaseRetrying.stop, and BaseRetrying.wait.

Referenced by ParseResults.__add__(), Text.__add__(), ParserElement.__call__(), ParseResults.__radd__(), ParserElement._setResultsName(), ParseResults.deepcopy(), Text.divide(), ConsoleOptions.reset_height(), Text.split(), ConsoleOptions.update(), ConsoleOptions.update_dimensions(), ConsoleOptions.update_height(), ConsoleOptions.update_width(), Text.with_indent_guides(), and BaseRetrying.wraps().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ iter()

t.Union[DoAttempt, DoSleep, t.Any] iter (   self,
"RetryCallState"  retry_state 
)

Definition at line 307 of file __init__.py.

307 def iter(self, retry_state: "RetryCallState") -> t.Union[DoAttempt, DoSleep, t.Any]: # noqa
309 if fut is None:
310 if self.before is not None:
311 self.before(retry_state)
312 return DoAttempt()
313
314 is_explicit_retry = fut.failed and isinstance(fut.exception(), TryAgain)
315 if not (is_explicit_retry or self.retry(retry_state)):
316 return fut.result()
317
318 if self.after is not None:
319 self.after(retry_state)
320
321 self.statistics["delay_since_first_attempt"] = retry_state.seconds_since_start
322 if self.stop(retry_state):
323 if self.retry_error_callback:
324 return self.retry_error_callback(retry_state)
325 retry_exc = self.retry_error_cls(fut)
326 if self.reraise:
327 raise retry_exc.reraise()
328 raise retry_exc from fut.exception()
329
330 if self.wait:
331 sleep = self.wait(retry_state)
332 else:
333 sleep = 0.0
334 retry_state.next_action = RetryAction(sleep)
335 retry_state.idle_for += sleep
336 self.statistics["idle_for"] += sleep
337 self.statistics["attempt_number"] += 1
338
339 if self.before_sleep is not None:
340 self.before_sleep(retry_state)
341
342 return DoSleep(sleep)
343

References BaseRetrying.after, BaseRetrying.before, BaseRetrying.before_sleep, i, RetryError.reraise(), BaseRetrying.reraise, BaseRetrying.retry, BaseRetrying.retry_error_callback, BaseRetrying.retry_error_cls, BaseRetrying.statistics(), Progress.stop(), _RefreshThread.stop(), Live.stop(), Status.stop(), BaseRetrying.stop, and BaseRetrying.wait.

Referenced by AsyncRetrying.__anext__(), TornadoRetrying.__call__(), Retrying.__call__(), AsyncRetrying.__call__(), and BaseRetrying.__iter__().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ statistics()

t.Dict[str, t.Any] statistics (   self)
Return a dictionary of runtime statistics.

This dictionary will be empty when the controller has never been
ran. When it is running or has ran previously it should have (but
may not) have useful and/or informational keys and values when
running is underway and/or completed.

.. warning:: The keys in this dictionary **should** be some what
             stable (not changing), but there existence **may**
             change between major releases as new statistics are
             gathered or removed so before accessing keys ensure that
             they actually exist and handle when they do not.

.. note:: The values in this dictionary are local to the thread
          running call (so if multiple threads share the same retrying
          object - either directly or indirectly) they will each have
          there own view of statistics they have collected (in the
          future we may provide a way to aggregate the various
          statistics from each thread).

Definition at line 256 of file __init__.py.

256 def statistics(self) -> t.Dict[str, t.Any]:
257 """Return a dictionary of runtime statistics.
258
259 This dictionary will be empty when the controller has never been
260 ran. When it is running or has ran previously it should have (but
261 may not) have useful and/or informational keys and values when
262 running is underway and/or completed.
263
264 .. warning:: The keys in this dictionary **should** be some what
265 stable (not changing), but there existence **may**
266 change between major releases as new statistics are
267 gathered or removed so before accessing keys ensure that
268 they actually exist and handle when they do not.
269
270 .. note:: The values in this dictionary are local to the thread
271 running call (so if multiple threads share the same retrying
272 object - either directly or indirectly) they will each have
273 there own view of statistics they have collected (in the
274 future we may provide a way to aggregate the various
275 statistics from each thread).
276 """
277 try:
278 return self._local.statistics # type: ignore[no-any-return]
279 except AttributeError:
280 self._local.statistics = t.cast(t.Dict[str, t.Any], {})
281 return self._local.statistics
282

References BaseRetrying._local, and i.

Referenced by BaseRetrying.begin(), and BaseRetrying.iter().

Here is the caller graph for this function:

◆ wraps()

WrappedFn wraps (   self,
WrappedFn  f 
)
Wrap a function for retrying.

:param f: A function to wraps for retrying.

Reimplemented in AsyncRetrying.

Definition at line 283 of file __init__.py.

283 def wraps(self, f: WrappedFn) -> WrappedFn:
284 """Wrap a function for retrying.
285
286 :param f: A function to wraps for retrying.
287 """
288
289 @functools.wraps(f)
290 def wrapped_f(*args: t.Any, **kw: t.Any) -> t.Any:
291 return self(f, *args, **kw)
292
293 def retry_with(*args: t.Any, **kwargs: t.Any) -> WrappedFn:
294 return self.copy(*args, **kwargs).wraps(f)
295
296 wrapped_f.retry = self # type: ignore[attr-defined]
297 wrapped_f.retry_with = retry_with # type: ignore[attr-defined]
298
299 return wrapped_f # type: ignore[return-value]
300

References ChainMap.copy(), OrderedDict.copy(), ParserElement.copy(), ParseExpression.copy(), Forward.copy(), ParseResults.copy(), pyparsing_test.reset_pyparsing_context.copy(), RequestsCookieJar.copy(), PreparedRequest.copy(), CaseInsensitiveDict.copy(), DirectedGraph.copy(), ConsoleOptions.copy(), Style.copy(), Column.copy(), Text.copy(), HTTPHeaderDict.copy(), BaseRetrying.copy(), and i.

Here is the call graph for this function:

Field Documentation

◆ _local

_local
protected

Definition at line 213 of file __init__.py.

Referenced by BaseRetrying.statistics().

◆ after

after

Definition at line 210 of file __init__.py.

Referenced by BaseRetrying.copy(), and BaseRetrying.iter().

◆ before

before

Definition at line 209 of file __init__.py.

Referenced by BaseRetrying.copy(), and BaseRetrying.iter().

◆ before_sleep

before_sleep

Definition at line 211 of file __init__.py.

Referenced by BaseRetrying.copy(), and BaseRetrying.iter().

◆ reraise

reraise

Definition at line 212 of file __init__.py.

Referenced by BaseRetrying.copy(), and BaseRetrying.iter().

◆ retry

retry

Definition at line 208 of file __init__.py.

Referenced by BaseRetrying.copy(), and BaseRetrying.iter().

◆ retry_error_callback

retry_error_callback

Definition at line 215 of file __init__.py.

Referenced by BaseRetrying.copy(), and BaseRetrying.iter().

◆ retry_error_cls

retry_error_cls

Definition at line 214 of file __init__.py.

Referenced by BaseRetrying.copy(), and BaseRetrying.iter().

◆ sleep

◆ stop

◆ wait

wait

Definition at line 207 of file __init__.py.

Referenced by BaseRetrying.copy(), and BaseRetrying.iter().


The documentation for this class was generated from the following file: