Require base=BTC for coindesk and base=EUR for ecb.
This commit is contained in:
parent
23be58ae74
commit
494a721ccd
2 changed files with 17 additions and 0 deletions
|
@ -1,5 +1,7 @@
|
|||
import dataclasses
|
||||
import json
|
||||
import logging
|
||||
import sys
|
||||
from decimal import Decimal
|
||||
|
||||
import requests
|
||||
|
@ -45,6 +47,13 @@ class CoinDesk(BaseSource):
|
|||
]
|
||||
|
||||
def fetch(self, series):
|
||||
if series.base != "BTC" or series.quote == "BTC":
|
||||
# BTC is the only valid base. BTC as the quote will return BTC/USD.
|
||||
logging.critical(
|
||||
f"Invalid pair '{'/'.join([series.base, series.quote])}'. "
|
||||
f"Run 'pricehist source {self.id()} --symbols' to list valid pairs."
|
||||
)
|
||||
sys.exit(1)
|
||||
data = self._data(series)
|
||||
prices = []
|
||||
for (d, v) in data["bpi"].items():
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import dataclasses
|
||||
import logging
|
||||
import sys
|
||||
from datetime import datetime, timedelta
|
||||
from decimal import Decimal
|
||||
|
||||
|
@ -41,6 +43,12 @@ class ECB(BaseSource):
|
|||
return [(f"EUR/{c}", f"Euro against {iso[c].name}") for c in currencies]
|
||||
|
||||
def fetch(self, series):
|
||||
if series.base != "EUR": # EUR is the only valid base.
|
||||
logging.critical(
|
||||
f"Invalid pair '{'/'.join([series.base, series.quote])}'. "
|
||||
f"Run 'pricehist source {self.id()} --symbols' to list valid pairs."
|
||||
)
|
||||
sys.exit(1)
|
||||
almost_90_days_ago = (datetime.now().date() - timedelta(days=85)).isoformat()
|
||||
root = self._data(series.start < almost_90_days_ago)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue