Skip to content

Commit

Permalink
Catch exception in download (PaddlePaddle#28090)
Browse files Browse the repository at this point in the history
* cat exeception in request download; test=develop

* add re-try in download; test=develop
  • Loading branch information
phlrain authored Oct 20, 2020
1 parent 8327acc commit 651dab4
Showing 1 changed file with 25 additions and 21 deletions.
46 changes: 25 additions & 21 deletions python/paddle/dataset/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,27 +88,31 @@ def download(url, module_name, md5sum, save_name=None):
sys.stderr.write("Cache file %s not found, downloading %s \n" %
(filename, url))
sys.stderr.write("Begin to download\n")
r = requests.get(url, stream=True)
total_length = r.headers.get('content-length')

if total_length is None:
with open(filename, 'wb') as f:
shutil.copyfileobj(r.raw, f)
else:
with open(filename, 'wb') as f:
chunk_size = 4096
total_length = int(total_length)
total_iter = total_length / chunk_size + 1
log_interval = total_iter / 20 if total_iter > 20 else 1
log_index = 0
for data in r.iter_content(chunk_size=chunk_size):
if six.PY2:
data = six.b(data)
f.write(data)
log_index += 1
if log_index % log_interval == 0:
sys.stderr.write(".")
sys.stdout.flush()
try:
r = requests.get(url, stream=True)
total_length = r.headers.get('content-length')

if total_length is None:
with open(filename, 'wb') as f:
shutil.copyfileobj(r.raw, f)
else:
with open(filename, 'wb') as f:
chunk_size = 4096
total_length = int(total_length)
total_iter = total_length / chunk_size + 1
log_interval = total_iter / 20 if total_iter > 20 else 1
log_index = 0
for data in r.iter_content(chunk_size=chunk_size):
if six.PY2:
data = six.b(data)
f.write(data)
log_index += 1
if log_index % log_interval == 0:
sys.stderr.write(".")
sys.stdout.flush()
except Exception as e:
# re-try
continue
sys.stderr.write("\nDownload finished\n")
sys.stdout.flush()
return filename
Expand Down

0 comments on commit 651dab4

Please sign in to comment.