Skip to content

check_splitter_panel_data_support

yohou.testing.splitter.check_splitter_panel_data_support(splitter, y_panel, X_panel=None)

Check splitter handles panel data if supports_panel_data=True.

Parameters

Name Type Description Default
splitter BaseSplitter

Splitter instance

required
y_panel DataFrame

Panel data with prefixed columns (e.g., "sales__store_1")

required
X_panel DataFrame None

Raises

Type Description
AssertionError

If splitter declares support but fails on panel data

Source Code

Show/Hide source
def check_splitter_panel_data_support(
    splitter,
    y_panel: pl.DataFrame,
    X_panel: pl.DataFrame | None = None,
) -> None:
    """Check splitter handles panel data if supports_panel_data=True.

    Parameters
    ----------
    splitter : BaseSplitter
        Splitter instance
    y_panel : pl.DataFrame
        Panel data with prefixed columns (e.g., "sales__store_1")
    X_panel : pl.DataFrame, optional
        Panel exogenous features

    Raises
    ------
    AssertionError
        If splitter declares support but fails on panel data

    """
    tags = splitter.__sklearn_tags__()
    if not tags.splitter_tags.supports_panel_data:
        # Skip check if panel data not supported
        return

    # Should not raise on panel data
    try:
        splits = list(splitter.split(y_panel, X_panel))
        assert len(splits) > 0, "Panel data split produced no splits"
    except Exception as e:
        raise AssertionError(f"Splitter declares supports_panel_data=True but failed on panel data: {e}") from e