Don't warn about missing only today's price.

This commit is contained in:
Chris Berkhout 2021-06-04 13:00:39 +02:00
parent 782db67195
commit ea4cc7ebe7

View file

@ -1,5 +1,5 @@
import logging import logging
from datetime import datetime from datetime import datetime, date, timedelta
def fetch(series, source, output, invert: bool, quantize: int, fmt) -> str: def fetch(series, source, output, invert: bool, quantize: int, fmt) -> str:
@ -16,11 +16,16 @@ def fetch(series, source, output, invert: bool, quantize: int, fmt) -> str:
else: else:
first = series.prices[0].date first = series.prices[0].date
last = series.prices[-1].date last = series.prices[-1].date
if series.start < first or series.end > last: if first > series.start or last < series.end:
logging.warn( message = (
f"Available data covers the interval [{first}--{last}], " f"Available data covers the interval [{first}--{last}], "
f"{_cov_description(series.start, series.end, first, last)}." f"{_cov_description(series.start, series.end, first, last)}."
) )
expected_end = _yesterday() if series.end == _today() else series.end
if first == series.start and last == expected_end:
logging.debug(message) # Missing today's price is expected
else:
logging.warn(message)
if invert: if invert:
series = series.invert() series = series.invert()
@ -30,6 +35,14 @@ def fetch(series, source, output, invert: bool, quantize: int, fmt) -> str:
return output.format(series, source, fmt=fmt) return output.format(series, source, fmt=fmt)
def _today():
return date.today().isoformat()
def _yesterday():
return (date.today() - timedelta(days=1)).isoformat()
def _cov_description( def _cov_description(
requested_start: str, requested_end: str, actual_start: str, actual_end: str requested_start: str, requested_end: str, actual_start: str, actual_end: str
) -> str: ) -> str: