From 98daf5b7ecc74152b36c77051c58f2ed0ada1670 Mon Sep 17 00:00:00 2001 From: Jen Herting Date: Mon, 28 Aug 2023 07:43:25 -0400 Subject: py-scikit-optimize: add v0.9.0 and move gptune patch (#38738) Co-authored-by: liuyangzhuan --- var/spack/repos/builtin/packages/gptune/package.py | 2 +- .../repos/builtin/packages/gptune/space.patch | 57 ++++++++++++++++++++++ .../builtin/packages/py-scikit-optimize/package.py | 14 +++--- .../packages/py-scikit-optimize/space.patch | 57 ---------------------- 4 files changed, 66 insertions(+), 64 deletions(-) create mode 100644 var/spack/repos/builtin/packages/gptune/space.patch delete mode 100644 var/spack/repos/builtin/packages/py-scikit-optimize/space.patch (limited to 'var') diff --git a/var/spack/repos/builtin/packages/gptune/package.py b/var/spack/repos/builtin/packages/gptune/package.py index 16b6f7aff4..f9a7c7695b 100644 --- a/var/spack/repos/builtin/packages/gptune/package.py +++ b/var/spack/repos/builtin/packages/gptune/package.py @@ -41,7 +41,7 @@ class Gptune(CMakePackage): depends_on("py-scikit-learn", type=("build", "run")) depends_on("py-matplotlib", type=("build", "run")) depends_on("py-pyyaml", type=("build", "run")) - depends_on("py-scikit-optimize@master+gptune", type=("build", "run")) + depends_on("py-scikit-optimize@0.9.0", patches=[patch("space.patch")], type=("build", "run")) depends_on("py-gpy", type=("build", "run")) depends_on("py-lhsmdu", type=("build", "run")) depends_on("py-hpbandster", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/gptune/space.patch b/var/spack/repos/builtin/packages/gptune/space.patch new file mode 100644 index 0000000000..c608bbb78a --- /dev/null +++ b/var/spack/repos/builtin/packages/gptune/space.patch @@ -0,0 +1,57 @@ +diff --git a/skopt/space/space.py b/skopt/space/space.py +old mode 100644 +new mode 100755 +index 329b0c1..bed1e05 +--- a/skopt/space/space.py ++++ b/skopt/space/space.py +@@ -244,13 +244,13 @@ class Real(Dimension): + name : str or None + Name associated with the dimension, e.g., "learning rate". + +- dtype : str or dtype, default=float ++ dtype : str or dtype, default=np.float + float type which will be used in inverse_transform, + can be float. + + """ + def __init__(self, low, high, prior="uniform", base=10, transform=None, +- name=None, dtype=float): ++ name=None, dtype=np.float, optimize=True): + if high <= low: + raise ValueError("the lower bound {} has to be less than the" + " upper bound {}".format(low, high)) +@@ -267,6 +267,7 @@ class Real(Dimension): + self._rvs = None + self.transformer = None + self.transform_ = transform ++ self.optimize = optimize + if isinstance(self.dtype, str) and self.dtype\ + not in ['float', 'float16', 'float32', 'float64']: + raise ValueError("dtype must be 'float', 'float16', 'float32'" +@@ -346,7 +347,8 @@ class Real(Dimension): + self.low, self.high).astype(self.dtype) + if self.dtype == float or self.dtype == 'float': + # necessary, otherwise the type is converted to a numpy type +- return getattr(inv_transform, "tolist", lambda: value)() ++ inv_transform = getattr(inv_transform, "tolist", lambda: value)() ++ return [round(val, 6) for val in inv_transform] + else: + return inv_transform + +@@ -435,7 +437,7 @@ class Integer(Dimension): + + """ + def __init__(self, low, high, prior="uniform", base=10, transform=None, +- name=None, dtype=np.int64): ++ name=None, dtype=np.int64, optimize=True): + if high <= low: + raise ValueError("the lower bound {} has to be less than the" + " upper bound {}".format(low, high)) +@@ -450,6 +452,7 @@ class Integer(Dimension): + self.name = name + self.dtype = dtype + self.transform_ = transform ++ self.optimize = optimize + self._rvs = None + self.transformer = None + diff --git a/var/spack/repos/builtin/packages/py-scikit-optimize/package.py b/var/spack/repos/builtin/packages/py-scikit-optimize/package.py index 0c4bfec54f..1bf5da83e1 100644 --- a/var/spack/repos/builtin/packages/py-scikit-optimize/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-optimize/package.py @@ -21,17 +21,19 @@ class PyScikitOptimize(PythonPackage): maintainers("liuyangzhuan") version("master", branch="master") + version("0.9.0", sha256="77d8c9e64947fc9f5cc05bbc6aed7b8a9907871ae26fe11997fd67be90f26008") version("0.5.2", sha256="1d7657a4b8ef9aa6d81e49b369c677c584e83269f11710557741d3b3f8fa0a75") - variant("plots", default=True, description="Build with plot support from py-matplotlib") - variant("gptune", default=False, description="Build with patches for GPTune") depends_on("py-setuptools", type="build") depends_on("py-numpy", type=("build", "run")) - depends_on("py-scipy@0.14.0:", type=("build", "run")) + depends_on("py-numpy@1.13.3:", when="@0.9:", type=("build", "run")) + depends_on("py-scipy@0.14:", type=("build", "run")) + depends_on("py-scipy@0.19.1:", when="@0.9:", type=("build", "run")) depends_on("py-scikit-learn@0.19.1:", type=("build", "run")) - depends_on("py-pyyaml", when="+gptune", type=("build", "run")) + depends_on("py-scikit-learn@0.20:", when="@0.9:", type=("build", "run")) + depends_on("py-pyaml@16.9:", when="@0.9:", type=("build", "run")) + depends_on("py-joblib@0.11:", when="@0.9:", type=("build", "run")) depends_on("py-matplotlib", when="+plots") - - patch("space.patch", when="+gptune") + depends_on("py-matplotlib@2:", when="@0.9:+plots") diff --git a/var/spack/repos/builtin/packages/py-scikit-optimize/space.patch b/var/spack/repos/builtin/packages/py-scikit-optimize/space.patch deleted file mode 100644 index c608bbb78a..0000000000 --- a/var/spack/repos/builtin/packages/py-scikit-optimize/space.patch +++ /dev/null @@ -1,57 +0,0 @@ -diff --git a/skopt/space/space.py b/skopt/space/space.py -old mode 100644 -new mode 100755 -index 329b0c1..bed1e05 ---- a/skopt/space/space.py -+++ b/skopt/space/space.py -@@ -244,13 +244,13 @@ class Real(Dimension): - name : str or None - Name associated with the dimension, e.g., "learning rate". - -- dtype : str or dtype, default=float -+ dtype : str or dtype, default=np.float - float type which will be used in inverse_transform, - can be float. - - """ - def __init__(self, low, high, prior="uniform", base=10, transform=None, -- name=None, dtype=float): -+ name=None, dtype=np.float, optimize=True): - if high <= low: - raise ValueError("the lower bound {} has to be less than the" - " upper bound {}".format(low, high)) -@@ -267,6 +267,7 @@ class Real(Dimension): - self._rvs = None - self.transformer = None - self.transform_ = transform -+ self.optimize = optimize - if isinstance(self.dtype, str) and self.dtype\ - not in ['float', 'float16', 'float32', 'float64']: - raise ValueError("dtype must be 'float', 'float16', 'float32'" -@@ -346,7 +347,8 @@ class Real(Dimension): - self.low, self.high).astype(self.dtype) - if self.dtype == float or self.dtype == 'float': - # necessary, otherwise the type is converted to a numpy type -- return getattr(inv_transform, "tolist", lambda: value)() -+ inv_transform = getattr(inv_transform, "tolist", lambda: value)() -+ return [round(val, 6) for val in inv_transform] - else: - return inv_transform - -@@ -435,7 +437,7 @@ class Integer(Dimension): - - """ - def __init__(self, low, high, prior="uniform", base=10, transform=None, -- name=None, dtype=np.int64): -+ name=None, dtype=np.int64, optimize=True): - if high <= low: - raise ValueError("the lower bound {} has to be less than the" - " upper bound {}".format(low, high)) -@@ -450,6 +452,7 @@ class Integer(Dimension): - self.name = name - self.dtype = dtype - self.transform_ = transform -+ self.optimize = optimize - self._rvs = None - self.transformer = None - -- cgit v1.2.3-60-g2f50