Skip to content

Commit 51d2f7b

Browse files
author
TomAugspurger
committed
ENH: Better error message if a bad series name is passed to the
get_data_fred function.
1 parent d97ec8e commit 51d2f7b

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

pandas/io/data.py

+9-2
Original file line numberDiff line numberDiff line change
@@ -369,8 +369,15 @@ def get_data_fred(name=None, start=dt.datetime(2010, 1, 1),
369369
data = read_csv(urllib.urlopen(url), index_col=0, parse_dates=True,
370370
header=None, skiprows=1, names=["DATE", name],
371371
na_values='.')
372-
return data.truncate(start, end)
373-
372+
try:
373+
return data.truncate(start, end)
374+
except KeyError:
375+
if data.ix[3].name[7:12] == 'Error':
376+
raise Exception("Failed to get the data. "
377+
"Check that {} is valid FRED "
378+
"series.".format(name))
379+
else:
380+
raise
374381

375382
def get_data_famafrench(name, start=None, end=None):
376383
start, end = _sanitize_dates(start, end)

pandas/io/tests/test_fred.py

+6
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,12 @@ def test_fred_parts(self):
7474
result = web.get_data_fred("A09024USA144NNBR", start="1915").ix[:5]
7575
assert (result.values == expected).all()
7676

77+
@slow
78+
@network
79+
def test_invalid_series(self):
80+
name = "NOT A REAL SERIES"
81+
self.assertRaises(Exception, web.get_data_fred, name)
82+
7783
if __name__ == '__main__':
7884
nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'],
7985
exit=False)

0 commit comments

Comments
 (0)