alphavantage: request compact data if full data isn't needed.

This commit is contained in:
Chris Berkhout 2021-06-02 22:49:54 +02:00
parent ee8bf69dbe
commit af297824a6

View file

@ -1,5 +1,6 @@
import csv
import dataclasses
from datetime import datetime, timedelta
import json
import logging
import os
@ -137,7 +138,7 @@ class AlphaVantage(BaseSource):
params = {
"function": "TIME_SERIES_DAILY_ADJUSTED",
"symbol": series.base,
"outputsize": "full",
"outputsize": self._outputsize(series.start),
"apikey": self._apikey(),
}
response = self.log_curl(requests.get(self.QUERY_URL, params=params))
@ -159,7 +160,7 @@ class AlphaVantage(BaseSource):
"function": "FX_DAILY",
"from_symbol": series.base,
"to_symbol": series.quote,
"outputsize": "full",
"outputsize": self._outputsize(series.start),
"apikey": self._apikey(),
}
response = self.log_curl(requests.get(self.QUERY_URL, params=params))
@ -170,6 +171,13 @@ class AlphaVantage(BaseSource):
}
return normalized_data
def _outputsize(self, start):
almost_100_days_ago = (datetime.now().date() - timedelta(days=95)).isoformat()
if start < almost_100_days_ago:
return "full"
else:
return "compact"
def _digital_data(self, series):
params = {
"function": "DIGITAL_CURRENCY_DAILY",