/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
build/scripts/retry.py
31 строка
748 B
iaz1607
`build/scripts` ya style --py
30 ноя 2023, 13:12
30 ноя 2023, 13:12
a6ee229
Код
Авторство
О чём код?
import time import functools # Partly copy-pasted from contrib/python/retry def retry_func(f, exceptions=Exception, tries=-1, delay=1, max_delay=None, backoff=1): _tries, _delay = tries, delay while _tries: try: return f() except exceptions: _tries -= 1 if not _tries: raise time.sleep(_delay) _delay *= backoff if max_delay is not None: _delay = min(_delay, max_delay) def retry(**retry_kwargs): def decorator(func): @functools.wraps(func) def wrapper(*args, **kwargs): return retry_func(lambda: func(*args, **kwargs), **retry_kwargs) return wrapper return decorator