diff --git a/src/pricehist/cli.py b/src/pricehist/cli.py index 30db72a..a057072 100644 --- a/src/pricehist/cli.py +++ b/src/pricehist/cli.py @@ -86,17 +86,17 @@ def build_parser(): raise argparse.ArgumentTypeError(msg) def previous_valid_date(s): - return str( + return ( datetime.strptime(valid_date(s), "%Y-%m-%d").date() - timedelta(days=1) - ) + ).isoformat() def following_valid_date(s): - return str( + return ( datetime.strptime(valid_date(s), "%Y-%m-%d").date() + timedelta(days=1) - ) + ).isoformat() def today(): - return str(datetime.now().date()) + return datetime.now().date().isoformat() def formatter(prog): return argparse.HelpFormatter(prog, max_help_position=50) diff --git a/src/pricehist/sources/ecb.py b/src/pricehist/sources/ecb.py index e45f3dd..3c913cf 100644 --- a/src/pricehist/sources/ecb.py +++ b/src/pricehist/sources/ecb.py @@ -41,14 +41,12 @@ class ECB(BaseSource): return [(f"EUR/{c}", f"Euro against {iso[c].name}") for c in currencies] def fetch(self, series): - almost_90_days_ago = str(datetime.now().date() - timedelta(days=85)) + almost_90_days_ago = (datetime.now().date() - timedelta(days=85)).isoformat() root = self._data(series.start < almost_90_days_ago) all_rows = [] for day in root.cssselect("[time]"): date = day.attrib["time"] - # TODO what if it's not found for that day? - # (some quotes aren't in the earliest data) for row in day.cssselect(f"[currency='{series.quote}']"): rate = Decimal(row.attrib["rate"]) all_rows.insert(0, (date, rate))