Skip to content

check_groups_exist

yohou.utils.validation.check_groups_exist(fitted_panel_groups, requested_panel_groups, context)

Validate all requested panel groups exist in fitted forecaster.

.. deprecated:: Use check_groups instead.

Consolidates duplicated validation in predict, observe, rewind methods.

Parameters

Name Type Description Default
fitted_panel_groups list of str

Panel group names from fitted forecaster (groups_).

required
requested_panel_groups list of str or None

Panel group names requested for operation.

required
context str

Method name for error message (e.g., "predict", "observe", "rewind").

required

Raises

Type Description
ValueError

If any requested panel group was not present during fit.

See Also

Source Code

Show/Hide source
def check_groups_exist(
    fitted_panel_groups: list[str],
    requested_panel_groups: list[str] | None,
    context: str,
) -> None:
    """Validate all requested panel groups exist in fitted forecaster.

    .. deprecated::
        Use `check_groups` instead.

    Consolidates duplicated validation in predict, observe, rewind methods.

    Parameters
    ----------
    fitted_panel_groups : list of str
        Panel group names from fitted forecaster (groups_).
    requested_panel_groups : list of str or None
        Panel group names requested for operation.
    context : str
        Method name for error message (e.g., "predict", "observe", "rewind").

    Raises
    ------
    ValueError
        If any requested panel group was not present during fit.

    See Also
    --------
    - [`check_groups`][yohou.utils.validation.check_groups] : Preferred replacement for this function.
    - [`check_panel_groups_match`][yohou.utils.validation.check_panel_groups_match] : Validate y and X_actual have matching panel groups.

    """
    if requested_panel_groups is None:
        return

    missing_groups = set(requested_panel_groups) - set(fitted_panel_groups)
    if missing_groups:
        raise ValueError(
            f"Panel groups {sorted(missing_groups)} not found in fitted forecaster. "
            f"Available groups: {sorted(fitted_panel_groups)}. "
            f"Cannot {context} for groups that were not present during fit."
        )