Skip to content

check_observe_auto_rederives_step_columns

yohou.testing.forecaster.check_observe_auto_rederives_step_columns(forecaster, y_observe, X_actual_observe, X_future=None, X_forecast=None)

Check observe() re-derives step columns from stored raws.

After observe, step columns should be re-derived from stored _X_future_raw_ / _X_forecast_raw_ (or from provided overrides).

Parameters

Name Type Description Default
forecaster BaseForecaster

Fitted forecaster instance (fitted with X_future/X_forecast).

required
y_observe DataFrame

Update observation data.

required
X_actual_observe DataFrame or None

Update features.

required
X_future DataFrame or None

Optional X_future override for observe.

None
X_forecast DataFrame or None

Optional X_forecast override for observe.

None

Source Code

Show/Hide source
def check_observe_auto_rederives_step_columns(
    forecaster,
    y_observe: pl.DataFrame,
    X_actual_observe: pl.DataFrame | None,
    X_future: pl.DataFrame | None = None,
    X_forecast: pl.DataFrame | None = None,
) -> None:
    """Check observe() re-derives step columns from stored raws.

    After observe, step columns should be re-derived from stored
    ``_X_future_raw_`` / ``_X_forecast_raw_`` (or from provided overrides).

    Parameters
    ----------
    forecaster : BaseForecaster
        Fitted forecaster instance (fitted with X_future/X_forecast).
    y_observe : pl.DataFrame
        Update observation data.
    X_actual_observe : pl.DataFrame or None
        Update features.
    X_future : pl.DataFrame or None
        Optional X_future override for observe.
    X_forecast : pl.DataFrame or None
        Optional X_forecast override for observe.

    """
    # Verify step columns exist before observe
    assert len(forecaster._step_column_names_) > 0, "Forecaster must have non-empty _step_column_names_ before observe"

    step_cols_before = forecaster._step_column_names_.copy()

    # Observe
    forecaster.observe(y_observe, X_actual_observe, X_future=X_future, X_forecast=X_forecast)

    # Step column names should still be the same set
    assert forecaster._step_column_names_ == step_cols_before, "_step_column_names_ should be preserved after observe"