in jobs/kpi-forecasting/kpi_forecasting/models/base_forecast.py [0:0]
def __post_init__(self) -> None:
# fetch observed observed data
self.collected_at = datetime.now(timezone.utc).replace(tzinfo=None)
self._get_observed_data()
# raise an error is predict_historical_dates is True and start_date is set
if self.start_date and self.predict_historical_dates:
raise ValueError(
"forecast start_date set while predict_historical_dates is True"
)
# use default start/end dates if the user doesn't specify them
self.start_date = pd.to_datetime(self.start_date or self._default_start_date)
self.end_date = pd.to_datetime(self.end_date or self._default_end_date)
self.dates_to_predict = pd.DataFrame(
{"submission_date": pd.date_range(self.start_date, self.end_date).date}
)
# initialize unset attributes
self.model = None
self.forecast_df = None
self.summary_df = None
# metadata
self.metadata_params = json.dumps(
{
"model_type": self.model_type.lower(),
"model_params": self.parameters,
"use_all_us_holidays": self.use_all_us_holidays,
}
)