def _validate_metric_callables()

in orbit/diagnostics/backtest.py [0:0]


    def _validate_metric_callables(self, metrics):
        for metric in metrics:
            metric_signature = self._get_metric_callable_signature(metric)
            if metric_signature == {
                BacktestFitKeys.ACTUAL.value,
                BacktestFitKeys.PREDICTED.value,
            }:
                continue
            elif metric_signature.issubset(
                {
                    BacktestFitKeys.TEST_ACTUAL.value,
                    BacktestFitKeys.TEST_PREDICTED.value,
                    BacktestFitKeys.TRAIN_ACTUAL.value,
                    BacktestFitKeys.TRAIN_PREDICTED.value,
                }
            ):
                continue
            else:
                raise BacktestException(
                    "metric callable does not have a supported function signature"
                )