jobs/kpi-forecasting/kpi_forecasting/utils.py (14 lines of code) (raw):
import datetime
def parse_end_date(end_date: str = None):
dt = datetime.datetime.utcnow()
if not end_date:
return dt
elif "last complete" in end_date:
return previous_period_last_date(end_date, dt)
return end_date
def previous_period_last_date(last_period: str, now: datetime.datetime):
if last_period not in ["last complete month", "last complete year"]:
raise ValueError("Unrecognized end date string.")
if last_period == "last complete year":
return datetime.date(now.year - 1, 12, 31)
return datetime.date(now.year, now.month, 1) - datetime.timedelta(days=1)