diff --git a/aqt/helper.py b/aqt/helper.py index 916c921..2e3b74f 100644 --- a/aqt/helper.py +++ b/aqt/helper.py @@ -50,7 +50,9 @@ def _check_content_type(ct: str) -> bool: def getUrl(url: str, timeout) -> str: logger = getLogger("aqt.helper") with requests.Session() as session: - retries = requests.adapters.Retry(total=Settings.max_retries, backoff_factor=Settings.backoff_factor) + retries = requests.adapters.Retry( + total=Settings.max_retries_on_connection_error, backoff_factor=Settings.backoff_factor + ) adapter = requests.adapters.HTTPAdapter(max_retries=retries) session.mount("http://", adapter) session.mount("https://", adapter) @@ -81,7 +83,9 @@ def downloadBinaryFile(url: str, out: str, hash_algo: str, exp: bytes, timeout): logger = getLogger("aqt.helper") filename = Path(url).name with requests.Session() as session: - retries = requests.adapters.Retry(total=Settings.max_retries, backoff_factor=Settings.backoff_factor) + retries = requests.adapters.Retry( + total=Settings.max_retries_on_connection_error, backoff_factor=Settings.backoff_factor + ) adapter = requests.adapters.HTTPAdapter(max_retries=retries) session.mount("http://", adapter) session.mount("https://", adapter) @@ -333,8 +337,13 @@ class SettingsClass: @property def max_retries(self): + """Deprecated: please use `max_retries_on_connection_error` and `max_retries_on_checksum_error` instead!""" return self.config.getfloat("requests", "max_retries", fallback=5) + @property + def max_retries_on_connection_error(self): + return self.config.getfloat("requests", "max_retries_on_connection_error", fallback=self.max_retries) + @property def max_retries_on_checksum_error(self): return self.config.getint("requests", "max_retries_on_checksum_error", fallback=int(self.max_retries)) diff --git a/aqt/settings.ini b/aqt/settings.ini index 31f1da4..0faf319 100644 --- a/aqt/settings.ini +++ b/aqt/settings.ini @@ -9,7 +9,7 @@ print_stacktrace_on_error: False [requests] connection_timeout: 3.5 response_timeout: 30 -max_retries: 5 +max_retries_on_connection_error: 5 retry_backoff: 0.1 max_retries_on_checksum_error: 5