mirror of
https://github.com/python/cpython.git
synced 2025-07-07 19:35:27 +00:00
gh-134262: Catch both URLError and ConnectionError in retries (#135365)
This commit is contained in:
parent
0d582def34
commit
acc20a83f4
2 changed files with 5 additions and 4 deletions
|
@ -5,8 +5,9 @@ import os
|
|||
import pathlib
|
||||
import sys
|
||||
import time
|
||||
import urllib.error
|
||||
import urllib.request
|
||||
import zipfile
|
||||
from urllib.request import urlretrieve
|
||||
|
||||
|
||||
def retrieve_with_retries(download_location, output_path, reporthook,
|
||||
|
@ -14,12 +15,12 @@ def retrieve_with_retries(download_location, output_path, reporthook,
|
|||
"""Download a file with exponential backoff retry and save to disk."""
|
||||
for attempt in range(max_retries + 1):
|
||||
try:
|
||||
resp = urlretrieve(
|
||||
resp = urllib.request.urlretrieve(
|
||||
download_location,
|
||||
output_path,
|
||||
reporthook=reporthook,
|
||||
)
|
||||
except ConnectionError as ex:
|
||||
except (urllib.error.URLError, ConnectionError) as ex:
|
||||
if attempt == max_retries:
|
||||
msg = f"Download from {download_location} failed."
|
||||
raise OSError(msg) from ex
|
||||
|
|
|
@ -172,7 +172,7 @@ def download_with_retries(download_location: str,
|
|||
for attempt in range(max_retries + 1):
|
||||
try:
|
||||
resp = urllib.request.urlopen(download_location)
|
||||
except urllib.error.URLError as ex:
|
||||
except (urllib.error.URLError, ConnectionError) as ex:
|
||||
if attempt == max_retries:
|
||||
msg = f"Download from {download_location} failed."
|
||||
raise OSError(msg) from ex
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue