From e14599c6208f98673b0b37bea4f9a84f3f33c749 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Tue, 6 Jan 2026 19:12:36 +0100 Subject: [PATCH] refactor(quickadapter): return cached sets directly in optuna_samplers_by_namespace - Add _optuna_hpo_samplers_set() and _optuna_label_samplers_set() cached methods - Change return type from tuple[tuple[OptunaSampler, ...], OptunaSampler] to tuple[set[OptunaSampler], OptunaSampler] - Remove redundant set() conversion in sampler validation - Align with existing pattern used by other constant set methods (_scaler_types_set, _threshold_methods_set, etc.) --- .../freqaimodels/QuickAdapterRegressorV3.py | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py index 164100c..b87c3b5 100644 --- a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py +++ b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py @@ -265,6 +265,16 @@ class QuickAdapterRegressorV3(BaseRegressionModel): def _optuna_namespaces_set() -> set[OptunaNamespace]: return set(QuickAdapterRegressorV3._OPTUNA_NAMESPACES) + @staticmethod + @lru_cache(maxsize=None) + def _optuna_hpo_samplers_set() -> set[OptunaSampler]: + return set(QuickAdapterRegressorV3._OPTUNA_HPO_SAMPLERS) + + @staticmethod + @lru_cache(maxsize=None) + def _optuna_label_samplers_set() -> set[OptunaSampler]: + return set(QuickAdapterRegressorV3._OPTUNA_LABEL_SAMPLERS) + @staticmethod @lru_cache(maxsize=None) def _scaler_types_set() -> set[ScalerType]: @@ -3058,20 +3068,16 @@ class QuickAdapterRegressorV3(BaseRegressionModel): @lru_cache(maxsize=8) def optuna_samplers_by_namespace( self, namespace: OptunaNamespace - ) -> tuple[tuple[OptunaSampler, ...], OptunaSampler]: + ) -> tuple[set[OptunaSampler], OptunaSampler]: if namespace == QuickAdapterRegressorV3._OPTUNA_NAMESPACES[0]: # "hp" return ( - QuickAdapterRegressorV3._OPTUNA_HPO_SAMPLERS, - self._optuna_config.get( - "sampler", - ), + QuickAdapterRegressorV3._optuna_hpo_samplers_set(), + self._optuna_config.get("sampler"), ) elif namespace == QuickAdapterRegressorV3._OPTUNA_NAMESPACES[1]: # "label" return ( - QuickAdapterRegressorV3._OPTUNA_LABEL_SAMPLERS, - self._optuna_config.get( - "label_sampler", - ), + QuickAdapterRegressorV3._optuna_label_samplers_set(), + self._optuna_config.get("label_sampler"), ) else: raise ValueError( @@ -3117,7 +3123,7 @@ class QuickAdapterRegressorV3(BaseRegressionModel): ) samplers, sampler = self.optuna_samplers_by_namespace(namespace) - if sampler not in set(samplers): + if sampler not in samplers: raise ValueError( f"Invalid optuna {namespace} sampler value {sampler!r}: " f"supported values are {', '.join(samplers)}" -- 2.53.0