26 lines
807 B
Python
26 lines
807 B
Python
"""Date-window helpers for the 11-day pipeline horizon."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from datetime import date, timedelta
|
|
|
|
|
|
def build_window(as_of: date) -> list[date]:
|
|
"""Return the inclusive date list from as_of-5 through as_of+5."""
|
|
return [as_of + timedelta(days=offset) for offset in range(-5, 6)]
|
|
|
|
|
|
def past_days(as_of: date) -> list[date]:
|
|
"""Days strictly before as_of within the window (as_of-5 .. as_of-1)."""
|
|
return [as_of + timedelta(days=offset) for offset in range(-5, 0)]
|
|
|
|
|
|
def today_and_future(as_of: date) -> list[date]:
|
|
"""as_of through as_of+5 inclusive."""
|
|
return [as_of + timedelta(days=offset) for offset in range(0, 6)]
|
|
|
|
|
|
def format_date(d: date) -> str:
|
|
"""Format a date as DD-MM-YYYY for the JSON payload."""
|
|
return d.strftime("%d-%m-%Y")
|