diff --git a/hexlib/misc.py b/hexlib/misc.py index 127aaf7..a2583bd 100644 --- a/hexlib/misc.py +++ b/hexlib/misc.py @@ -4,12 +4,14 @@ import time from threading import Lock import atexit +from time import sleep + import siphash last_time_called = dict() -def retry(attempts, callback=None): +def retry(attempts, callback=None, retry_sleep=0): def decorate(func): def wrapper(*args, **kwargs): retries = attempts @@ -20,6 +22,7 @@ def retry(attempts, callback=None): if callback: callback(e) retries -= 1 + sleep(retry_sleep) return wrapper return decorate diff --git a/hexlib/web.py b/hexlib/web.py index 1624df7..ee0e95f 100644 --- a/hexlib/web.py +++ b/hexlib/web.py @@ -112,7 +112,7 @@ def download_file(url, destination, session=None, headers=None, overwrite=False, class Web: - def __init__(self, proxy=None, rps=1, retries=3, logger=None, cookie_file=None, retry_codes=None, session=None, + def __init__(self, proxy=None, rps=1, retries=3, retry_sleep=0, logger=None, cookie_file=None, retry_codes=None, session=None, ua=None): self._cookie_file = cookie_file self._proxy = proxy @@ -140,7 +140,7 @@ class Web: } @rate_limit(rps) - @retry(retries, callback=self._error_callback) + @retry(retries, callback=self._error_callback, retry_sleep=retry_sleep) def get(url, **kwargs): self._current_req = "GET", url, kwargs r = self._session.get(url, **kwargs) diff --git a/setup.py b/setup.py index 21996b1..ce03442 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup setup( name="hexlib", - version="1.36", + version="1.37", description="Misc utility methods", author="simon987", author_email="me@simon987.net",