From ad43d7e6c8422ca64a03894a2275031b64b249b4 Mon Sep 17 00:00:00 2001 From: Simon Blanke Date: Wed, 3 Sep 2025 18:14:20 +0200 Subject: [PATCH 1/5] fix docstring --- src/hyperactive/opt/random_search.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hyperactive/opt/random_search.py b/src/hyperactive/opt/random_search.py index e6b1d40c..c6c23e10 100644 --- a/src/hyperactive/opt/random_search.py +++ b/src/hyperactive/opt/random_search.py @@ -1,4 +1,4 @@ -"""Grid search optimizer.""" +"""Random search optimizer.""" # copyright: hyperactive developers, MIT License (see LICENSE file) From 2b19f0c1392777d971fb46533000c1eef31043e1 Mon Sep 17 00:00:00 2001 From: Simon Blanke Date: Wed, 3 Sep 2025 18:14:57 +0200 Subject: [PATCH 2/5] remove unused code --- src/hyperactive/__init__.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/hyperactive/__init__.py b/src/hyperactive/__init__.py index 4405d413..f9d63226 100644 --- a/src/hyperactive/__init__.py +++ b/src/hyperactive/__init__.py @@ -13,5 +13,3 @@ __version__ = importlib.metadata.version("hyperactive") __license__ = "MIT" - -__all__ = [] From d40438353b1f3a729cb21bef62258627366770a2 Mon Sep 17 00:00:00 2001 From: Simon Blanke Date: Wed, 3 Sep 2025 18:30:28 +0200 Subject: [PATCH 3/5] add abstract method --- src/hyperactive/base/_optimizer.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/hyperactive/base/_optimizer.py b/src/hyperactive/base/_optimizer.py index 7ab8c68a..54afbb23 100644 --- a/src/hyperactive/base/_optimizer.py +++ b/src/hyperactive/base/_optimizer.py @@ -2,6 +2,8 @@ # copyright: hyperactive developers, MIT License (see LICENSE file) +from abc import abstractmethod + from skbase.base import BaseObject @@ -76,3 +78,23 @@ def solve(self): best_params = self._solve(experiment, **search_config) self.best_params_ = best_params return best_params + + @abstractmethod + def _solve(self, experiment, *args, **kwargs): + """Run the optimization search process. + + Parameters + ---------- + experiment : BaseExperiment + The experiment to optimize parameters for. + *args : tuple + Positional arguments specific to the optimization backend. + **kwargs : dict + Keyword arguments specific to the optimization backend. + + Returns + ------- + dict with str keys + The best parameters found during the search. + Must have keys a subset or identical to experiment.paramnames(). + """ From 86ae36c4a51fa2ed8dcb8a12cd19493280f6d649 Mon Sep 17 00:00:00 2001 From: Simon Blanke Date: Thu, 4 Sep 2025 05:10:15 +0200 Subject: [PATCH 4/5] raise NotImplementedError instead of abstractmethod --- src/hyperactive/base/_optimizer.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/hyperactive/base/_optimizer.py b/src/hyperactive/base/_optimizer.py index 54afbb23..faca1ea2 100644 --- a/src/hyperactive/base/_optimizer.py +++ b/src/hyperactive/base/_optimizer.py @@ -2,8 +2,6 @@ # copyright: hyperactive developers, MIT License (see LICENSE file) -from abc import abstractmethod - from skbase.base import BaseObject @@ -79,7 +77,6 @@ def solve(self): self.best_params_ = best_params return best_params - @abstractmethod def _solve(self, experiment, *args, **kwargs): """Run the optimization search process. @@ -98,3 +95,4 @@ def _solve(self, experiment, *args, **kwargs): The best parameters found during the search. Must have keys a subset or identical to experiment.paramnames(). """ + raise NotImplementedError From f1c448a36a70caefcf3e637cfbca9f09ba335d3f Mon Sep 17 00:00:00 2001 From: Simon Blanke Date: Fri, 5 Sep 2025 04:19:34 +0200 Subject: [PATCH 5/5] Update src/hyperactive/base/_optimizer.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Franz Király --- src/hyperactive/base/_optimizer.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/hyperactive/base/_optimizer.py b/src/hyperactive/base/_optimizer.py index faca1ea2..8dd08df2 100644 --- a/src/hyperactive/base/_optimizer.py +++ b/src/hyperactive/base/_optimizer.py @@ -95,4 +95,7 @@ def _solve(self, experiment, *args, **kwargs): The best parameters found during the search. Must have keys a subset or identical to experiment.paramnames(). """ - raise NotImplementedError + raise NotImplementedError( + "abstract method, BaseOptimizer._solve should be implemented by " + "descendant classes" + )