aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2020-08-17 19:24:01 +0100
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2020-08-17 19:24:01 +0100
commite334706eb6f148baa6cadb8c2418918e34982ac4 (patch)
tree8a49b919e3cb6b50a8ddfe378b417e99728ba071
parentUse read_table instead of read_csv (diff)
downloadTCPD-e334706eb6f148baa6cadb8c2418918e34982ac4.tar.gz
TCPD-e334706eb6f148baa6cadb8c2418918e34982ac4.zip
Add retries to the get_measles script
This script occassionally fails on Travis, so we're adding some robustness to it.
-rw-r--r--datasets/measles/get_measles.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/datasets/measles/get_measles.py b/datasets/measles/get_measles.py
index eb58824..13f6dc9 100644
--- a/datasets/measles/get_measles.py
+++ b/datasets/measles/get_measles.py
@@ -17,9 +17,12 @@ import clevercsv
import hashlib
import json
import os
+import sys
+import time
from functools import wraps
from urllib.request import urlretrieve
+from urllib.error import URLError
DAT_URL = "https://web.archive.org/web/20191128124615if_/https://ms.mcmaster.ca/~bolker/measdata/ewmeas.dat"
@@ -70,7 +73,20 @@ def validate(checksum):
@validate(MD5_DAT)
def download_zip(target_path=None):
- urlretrieve(DAT_URL, target_path)
+ count = 0
+ while count < 5:
+ count += 1
+ try:
+ urlretrieve(DAT_URL, target_path)
+ return
+ except URLError as err:
+ print(
+ "Error occurred (%r) when trying to download zip. Retrying in 5 seconds"
+ % err,
+ sys.stderr,
+ )
+ time.sleep(5)
+
@validate(MD5_JSON)