Skip to content

Commit 9a75c96

Browse files
authored
Merge pull request #649 from oceanapplications/patch-2
Limit data use
2 parents 9f56093 + 5bcfc70 commit 9a75c96

File tree

2 files changed

+49
-2
lines changed

2 files changed

+49
-2
lines changed

pandas_datareader/iex/daily.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,16 @@ def _range_string_from_date(self):
101101
elif 1 <= years < 2:
102102
return "2y"
103103
elif 0 <= years < 1:
104+
delta_days = (datetime.datetime.now() - self.start).days
105+
if 0 <= delta_days < 6:
106+
return "5d"
107+
elif 6 <= delta_days < 28:
108+
return "1m"
109+
elif 28 <= delta_days < 84:
110+
return "3m"
111+
elif 84 <= delta_days < 168:
112+
return "6m"
113+
104114
return "1y"
105115
else:
106116
raise ValueError(

pandas_datareader/tests/test_iex_daily.py

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
from datetime import datetime
1+
from datetime import date, datetime, timedelta
2+
23
import os
34

45
from pandas import DataFrame, MultiIndex
56

67
import pytest
78

89
import pandas_datareader.data as web
9-
10+
from pandas_datareader.iex.daily import IEXDailyReader
1011

1112
@pytest.mark.skipif(os.getenv("IEX_SANDBOX") != 'enable',
1213
reason='All tests must be run in sandbox mode')
@@ -66,3 +67,39 @@ def test_multiple_symbols_2(self):
6667

6768
assert len(a) == 73
6869
assert len(t) == 73
70+
71+
def test_range_string_from_date(self):
72+
syms = ["AAPL"]
73+
74+
assert IEXDailyReader(symbols=syms,
75+
start=date.today() - timedelta(days=5),
76+
end=date.today()
77+
)._range_string_from_date() == '5d'
78+
assert IEXDailyReader(symbols=syms,
79+
start=date.today() - timedelta(days=27),
80+
end=date.today()
81+
)._range_string_from_date() == '1m'
82+
assert IEXDailyReader(symbols=syms,
83+
start=date.today() - timedelta(days=83),
84+
end=date.today()
85+
)._range_string_from_date() == '3m'
86+
assert IEXDailyReader(symbols=syms,
87+
start=date.today() - timedelta(days=167),
88+
end=date.today()
89+
)._range_string_from_date() == '6m'
90+
assert IEXDailyReader(symbols=syms,
91+
start=date.today() - timedelta(days=170),
92+
end=date.today()
93+
)._range_string_from_date() == '1y'
94+
assert IEXDailyReader(symbols=syms,
95+
start=date.today() - timedelta(days=365),
96+
end=date.today()
97+
)._range_string_from_date() == '2y'
98+
assert IEXDailyReader(symbols=syms,
99+
start=date.today() - timedelta(days=730),
100+
end=date.today()
101+
)._range_string_from_date() == '5y'
102+
assert IEXDailyReader(symbols=syms,
103+
start=date.today() - timedelta(days=1826),
104+
end=date.today()
105+
)._range_string_from_date() == 'max'

0 commit comments

Comments
 (0)