Skip to content

check_reduction_strategy

yohou.testing.check_reduction_strategy(forecaster)

Check reduction_strategy is one of 'direct', 'dir-rec', 'multi-output'.

The same set is enforced by BaseReductionForecaster._parameter_constraints during _validate_params; this check additionally guards against a value set illegally after construction (e.g. by direct attribute assignment, which bypasses constraint validation).

Parameters

Name Type Description Default
forecaster BaseReductionForecaster

Reduction forecaster instance

required

Raises

Type Description
AssertionError

If reduction_strategy is not one of the allowed values

Source Code

Source code in src/yohou/testing/reduction.py
def check_reduction_strategy(forecaster) -> None:
    """Check reduction_strategy is one of 'direct', 'dir-rec', 'multi-output'.

    The same set is enforced by ``BaseReductionForecaster._parameter_constraints``
    during ``_validate_params``; this check additionally guards against a value
    set illegally after construction (e.g. by direct attribute assignment, which
    bypasses constraint validation).

    Parameters
    ----------
    forecaster : BaseReductionForecaster
        Reduction forecaster instance

    Raises
    ------
    AssertionError
        If reduction_strategy is not one of the allowed values

    """
    if not hasattr(forecaster, "reduction_strategy"):
        # Not all reduction forecasters expose this parameter
        return

    strategy = forecaster.reduction_strategy
    valid_strategies = ["direct", "dir-rec", "multi-output"]

    assert strategy in valid_strategies, f"reduction_strategy should be in {valid_strategies}, got '{strategy}'"