|
76 | 76 |
|
77 | 77 | print(__doc__) |
78 | 78 |
|
79 | | -# ############################################################################# |
80 | | -# Retrieve the data from Internet |
81 | 79 |
|
82 | 80 | def retry(f, n_attempts=3): |
83 | 81 | "Wrapper function to retry function calls in case of exceptions" |
84 | 82 | def wrapper(*args, **kwargs): |
85 | 83 | for i in range(n_attempts): |
86 | 84 | try: |
87 | 85 | return f(*args, **kwargs) |
88 | | - except Exception as e: |
| 86 | + except Exception: |
89 | 87 | if i == n_attempts - 1: |
90 | 88 | raise |
91 | 89 | return wrapper |
@@ -122,15 +120,27 @@ def quotes_historical_google(symbol, date1, date2): |
122 | 120 | 'formats': ['object', 'f4', 'f4', 'f4', 'f4', 'f4'] |
123 | 121 | } |
124 | 122 | converters = {0: lambda s: datetime.strptime(s.decode(), '%d-%b-%y')} |
125 | | - return np.genfromtxt(response, delimiter=',', skip_header=1, |
| 123 | + data = np.genfromtxt(response, delimiter=',', skip_header=1, |
126 | 124 | dtype=dtype, converters=converters, |
127 | 125 | missing_values='-', filling_values=-1) |
| 126 | + expected_len_data = 1258 |
| 127 | + len_data = len(data) |
| 128 | + min_date = data['date'].min() |
| 129 | + max_date = data['date'].max() |
| 130 | + if (len_data != expected_len_data or min_date != d1 or max_date != d2): |
| 131 | + raise ValueError('min_date, max_date, len(data) should be {}, {}, {} ' |
| 132 | + 'Got {}, {}, {} instead.'.format( |
| 133 | + d1, d2, expected_len_data, |
| 134 | + min_date, max_date, len_data)) |
| 135 | + return data |
128 | 136 |
|
| 137 | +# ############################################################################# |
| 138 | +# Retrieve the data from Internet |
129 | 139 |
|
130 | 140 | # Choose a time period reasonably calm (not too long ago so that we get |
131 | 141 | # high-tech firms, and before the 2008 crash) |
132 | | -d1 = datetime(2003, 1, 1) |
133 | | -d2 = datetime(2008, 1, 1) |
| 142 | +d1 = datetime(2003, 1, 2) |
| 143 | +d2 = datetime(2007, 12, 31) |
134 | 144 |
|
135 | 145 | symbol_dict = { |
136 | 146 | 'TOT': 'Total', |
|
0 commit comments