From 325c8393e66010e11d681fc10b4343b924ad5a1e Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Fri, 20 Jun 2025 11:41:40 +0200 Subject: [PATCH] refactor(qav3): align error messages MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- .../freqaimodels/QuickAdapterRegressorV3.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py index 2839a52..09397e5 100644 --- a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py +++ b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py @@ -723,7 +723,9 @@ class QuickAdapterRegressorV3(BaseRegressionModel): elif metric == "knn_d2_max": return np.max(distances[:, 1:], axis=1) else: - raise ValueError(f"Unsupported distance metric: {metric}") + raise ValueError( + f"Unsupported label metric: {metric}. Supported metrics are {', '.join(metrics)}" + ) objective_values_matrix = np.array([trial.values for trial in best_trials]) normalized_matrix = np.zeros_like(objective_values_matrix, dtype=float) @@ -1020,6 +1022,9 @@ class QuickAdapterRegressorV3(BaseRegressionModel): return False +regressors = {"xgboost", "lightgbm"} + + def get_callbacks(trial: optuna.trial.Trial, regressor: str) -> list[Callable]: if regressor == "xgboost": callbacks = [ @@ -1028,7 +1033,9 @@ def get_callbacks(trial: optuna.trial.Trial, regressor: str) -> list[Callable]: elif regressor == "lightgbm": callbacks = [optuna.integration.LightGBMPruningCallback(trial, "rmse")] else: - raise ValueError(f"Unsupported regressor model: {regressor}") + raise ValueError( + f"Unsupported regressor model: {regressor} (supported: {', '.join(regressors)})" + ) return callbacks @@ -1075,7 +1082,9 @@ def fit_regressor( callbacks=callbacks, ) else: - raise ValueError(f"Unsupported regressor model: {regressor}") + raise ValueError( + f"Unsupported regressor model: {regressor} (supported: {', '.join(regressors)})" + ) return model @@ -1195,6 +1204,10 @@ def get_optuna_study_model_parameters( regressor: str, model_training_best_parameters: dict[str, Any], ) -> dict[str, Any]: + if regressor not in regressors: + raise ValueError( + f"Unsupported regressor model: {regressor} (supported: {', '.join(regressors)})" + ) default_ranges = { "learning_rate": (1e-3, 0.5), "min_child_weight": (1e-8, 100.0), -- 2.43.0