projects
/
python_utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Various changes.
[python_utils.git]
/
decorator_utils.py
diff --git
a/decorator_utils.py
b/decorator_utils.py
index 375cbad436feca20d57750b8276537c94f66f060..76faec6f7be2e8d52f3ed9c7e05e1dc6048d666b 100644
(file)
--- a/
decorator_utils.py
+++ b/
decorator_utils.py
@@
-18,6
+18,8
@@
import traceback
from typing import Callable, Optional
import warnings
from typing import Callable, Optional
import warnings
+# This module is commonly used by others in here and should avoid
+# taking any unnecessary dependencies back on them.
import exceptions
import exceptions
@@
-190,7
+192,7
@@
def retry_predicate(
tries: int,
*,
predicate: Callable[..., bool],
tries: int,
*,
predicate: Callable[..., bool],
- delay_sec: float = 3,
+ delay_sec: float = 3
.0
,
backoff: float = 2.0,
):
"""Retries a function or method up to a certain number of times
backoff: float = 2.0,
):
"""Retries a function or method up to a certain number of times
@@
-200,10
+202,10
@@
def retry_predicate(
delay_sec sets the initial delay period in seconds.
backoff is a multiplied (must be >1) used to modify the delay.
predicate is a function that will be passed the retval of the
delay_sec sets the initial delay period in seconds.
backoff is a multiplied (must be >1) used to modify the delay.
predicate is a function that will be passed the retval of the
-
decorated function and must return True to stop or False to
-
retry.
+ decorated function and must return True to stop or False to
+ retry.
"""
"""
- if backoff < 1:
+ if backoff < 1
.0
:
msg = f"backoff must be greater than or equal to 1, got {backoff}"
logger.critical(msg)
raise ValueError(msg)
msg = f"backoff must be greater than or equal to 1, got {backoff}"
logger.critical(msg)
raise ValueError(msg)
@@
-223,9
+225,11
@@
def retry_predicate(
@functools.wraps(f)
def f_retry(*args, **kwargs):
mtries, mdelay = tries, delay_sec # make mutable
@functools.wraps(f)
def f_retry(*args, **kwargs):
mtries, mdelay = tries, delay_sec # make mutable
+ logger.debug(f'deco_retry: will make up to {mtries} attempts...')
retval = f(*args, **kwargs)
while mtries > 0:
if predicate(retval) is True:
retval = f(*args, **kwargs)
while mtries > 0:
if predicate(retval) is True:
+ logger.debug('Predicate succeeded, deco_retry is done.')
return retval
logger.debug("Predicate failed, sleeping and retrying.")
mtries -= 1
return retval
logger.debug("Predicate failed, sleeping and retrying.")
mtries -= 1
@@
-336,7
+340,7
@@
def _target(queue, function, *args, **kwargs):
"""
try:
queue.put((True, function(*args, **kwargs)))
"""
try:
queue.put((True, function(*args, **kwargs)))
- except:
+ except
Exception
:
queue.put((False, sys.exc_info()[1]))
queue.put((False, sys.exc_info()[1]))