summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam J. Stewart <ajstewart426@gmail.com>2024-05-24 12:41:59 +0200
committerGitHub <noreply@github.com>2024-05-24 12:41:59 +0200
commit556a36cbd797a2c43b6c38ff58f212e7ed0d54d6 (patch)
tree764a487ad71f9885b8bd6707a35f2ccadc35ceb9
parent8aa490d6b7eeef433729ce5dddc89d92a2440b9e (diff)
downloadspack-556a36cbd797a2c43b6c38ff58f212e7ed0d54d6.tar.gz
spack-556a36cbd797a2c43b6c38ff58f212e7ed0d54d6.tar.bz2
spack-556a36cbd797a2c43b6c38ff58f212e7ed0d54d6.tar.xz
spack-556a36cbd797a2c43b6c38ff58f212e7ed0d54d6.zip
py-scikit-learn: add v1.5.0 (#44303)
* py-scikit-learn: add v1.5.0 * Add maintainers * py-scikit-learn-extra: latest py-scikit-learn not supported
-rw-r--r--var/spack/repos/builtin/packages/py-pandas/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-learn-extra/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-learn/package.py71
3 files changed, 31 insertions, 46 deletions
diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py
index 5ebb03667e..86ff7723cd 100644
--- a/var/spack/repos/builtin/packages/py-pandas/package.py
+++ b/var/spack/repos/builtin/packages/py-pandas/package.py
@@ -17,9 +17,8 @@ class PyPandas(PythonPackage):
skip_modules = ["pandas.tests", "pandas.plotting._matplotlib", "pandas.core._numba.kernels"]
- maintainers("adamjstewart")
-
license("Apache-2.0")
+ maintainers("adamjstewart", "rgommers")
version("2.2.2", sha256="9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54")
version("2.2.1", sha256="0ab90f87093c13f3e8fa45b48ba9f39181046e8f3317d3aadb2fffbb1b978572")
diff --git a/var/spack/repos/builtin/packages/py-scikit-learn-extra/package.py b/var/spack/repos/builtin/packages/py-scikit-learn-extra/package.py
index 2aab648a08..1e445a3b6e 100644
--- a/var/spack/repos/builtin/packages/py-scikit-learn-extra/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-learn-extra/package.py
@@ -27,4 +27,5 @@ class PyScikitLearnExtra(PythonPackage):
depends_on("py-cython@0.28.5:", type="build")
depends_on("py-numpy@1.13.3:", type=("build", "run"))
depends_on("py-scipy@0.19.1:", type=("build", "run"))
- depends_on("py-scikit-learn@0.23:", type=("build", "run"))
+ # For upperbound see https://github.com/scikit-learn-contrib/scikit-learn-extra/issues/171
+ depends_on("py-scikit-learn@0.23:1.2", type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/py-scikit-learn/package.py b/var/spack/repos/builtin/packages/py-scikit-learn/package.py
index f12a6e171b..f54513e8d7 100644
--- a/var/spack/repos/builtin/packages/py-scikit-learn/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-learn/package.py
@@ -11,14 +11,15 @@ class PyScikitLearn(PythonPackage):
"""A set of python modules for machine learning and data mining."""
homepage = "https://scikit-learn.org/"
- pypi = "scikit-learn/scikit-learn-0.24.0.tar.gz"
+ pypi = "scikit-learn/scikit_learn-1.5.0.tar.gz"
git = "https://github.com/scikit-learn/scikit-learn.git"
- maintainers("adamjstewart")
-
license("BSD-3-Clause")
+ maintainers("adamjstewart", "rgommers")
- version("master", branch="master")
+ version("main", branch="main")
+ version("master", branch="main", deprecated=True)
+ version("1.5.0", sha256="789e3db01c750ed6d496fa2db7d50637857b451e57bcae863bff707c1247bef7")
version("1.4.2", sha256="daa1c471d95bad080c6e44b4946c9390a4842adc3082572c20e4f8884e39e959")
version("1.4.0", sha256="d4373c984eba20e393216edd51a3e3eede56cbe93d4247516d205643c3b93121")
version("1.3.2", sha256="a2f54c76accc15a34bfb9066e6c7a56c1e7235dda5762b990792330b52ccfb05")
@@ -46,8 +47,6 @@ class PyScikitLearn(PythonPackage):
version("0.22.1", sha256="51ee25330fc244107588545c70e2f3570cfc4017cff09eed69d6e1d82a212b7d")
version("0.22", sha256="314abf60c073c48a1e95feaae9f3ca47a2139bd77cebb5b877c23a45c9e03012")
- variant("openmp", default=True, description="Build with OpenMP support")
-
# Based on PyPI wheel availability
with default_args(type=("build", "link", "run")):
depends_on("python@3.9:3.12", when="@1.4:")
@@ -58,17 +57,15 @@ class PyScikitLearn(PythonPackage):
depends_on("python@:3.9", when="@0.24:1.0.1")
depends_on("python@:3.8", when="@0.22:0.23")
- # pyproject.toml
with default_args(type="build"):
- depends_on("py-setuptools")
- depends_on("py-setuptools@:59", when="@:1.2.1")
+ depends_on("py-meson-python@0.15:", when="@1.5:")
+ depends_on("py-cython@3.0.10:", when="@1.5:")
depends_on("py-cython@3.0.8:", when="@1.4.2:")
depends_on("py-cython@0.29.33:", when="@1.4.0:1.4.1")
depends_on("py-cython@0.29.33:2", when="@1.3")
depends_on("py-cython@0.29.24:2", when="@1.0.2:1.2")
depends_on("py-cython@0.28.5:2", when="@0.21:1.0.1")
- # sklearn/_min_dependencies.py
with default_args(type=("build", "link", "run")):
depends_on("py-numpy@1.19.5:", when="@1.4.2:")
depends_on("py-numpy@1.19.5:1", when="@1.4.0:1.4.1")
@@ -76,6 +73,7 @@ class PyScikitLearn(PythonPackage):
depends_on("py-numpy@1.14.6:1", when="@1.0")
depends_on("py-numpy@1.13.3:1", when="@0.23:0.24")
depends_on("py-numpy@1.11.0:1", when="@0.21:0.22")
+
with default_args(type=("build", "run")):
depends_on("py-scipy@1.6:", when="@1.4:")
depends_on("py-scipy@1.5:", when="@1.3:")
@@ -87,44 +85,31 @@ class PyScikitLearn(PythonPackage):
depends_on("py-joblib@1.1.1:", when="@1.2:")
depends_on("py-joblib@1:", when="@1.1:")
depends_on("py-joblib@0.11:")
- depends_on("py-threadpoolctl@2.0.0:", when="@0.23:")
- depends_on("llvm-openmp", when="%apple-clang +openmp")
-
- # Test dependencies
- with default_args(type="test"):
- depends_on("py-matplotlib@3.3.4:")
- depends_on("py-scikit-image@0.17.2:")
- depends_on("py-pandas@1.1.5:")
- depends_on("py-pytest@7.1.2:")
- depends_on("py-pyamg@4:")
- depends_on("py-polars@0.19.12:", when="@1.4:")
- depends_on("py-pyarrow@12:", when="@1.4:")
- depends_on("py-pooch@1.6:", when="@1.2:")
-
- # Release tarballs are already cythonized. If you wanted to build a release
- # version without OpenMP support, you would need to delete all .c files
- # that include omp.h, as well as PKG-INFO.
- # See https://github.com/scikit-learn/scikit-learn/issues/14332
- conflicts("~openmp", when="@:999", msg="Only master supports ~openmp")
+ depends_on("py-threadpoolctl@3.1:", when="@1.5:")
+ depends_on("py-threadpoolctl@2.0:", when="@0.23:")
+
+ depends_on("llvm-openmp", when="%apple-clang")
+
+ # Historical dependencies
+ with default_args(type="build"):
+ depends_on("py-setuptools", when="@:1.4")
+ depends_on("py-setuptools@:59", when="@:1.2.1")
+
+ def url_for_version(self, version):
+ url = "https://files.pythonhosted.org/packages/source/s/scikit-learn/{}-{}.tar.gz"
+ if version >= Version("1.5"):
+ name = "scikit_learn"
+ else:
+ name = "scikit-learn"
+ return url.format(name, version)
def setup_build_environment(self, env):
- # enable parallel builds of the sklearn backend
+ # Enable parallel builds of the sklearn backend
env.append_flags("SKLEARN_BUILD_PARALLEL", str(make_jobs))
- # https://scikit-learn.org/stable/developers/advanced_installation.html#building-from-source
- if self.spec.satisfies("~openmp"):
- env.set("SKLEARN_NO_OPENMP", "True")
- # https://scikit-learn.org/stable/developers/advanced_installation.html#mac-osx
- elif self.spec.satisfies("@0.21: %apple-clang +openmp"):
+ # https://scikit-learn.org/stable/developers/advanced_installation.html#macos
+ if self.spec.satisfies("%apple-clang"):
env.append_flags("CPPFLAGS", self.compiler.openmp_flag)
env.append_flags("CFLAGS", self.spec["llvm-openmp"].headers.include_flags)
env.append_flags("CXXFLAGS", self.spec["llvm-openmp"].headers.include_flags)
env.append_flags("LDFLAGS", self.spec["llvm-openmp"].libs.ld_flags)
-
- @run_after("install")
- @on_package_attributes(run_tests=True)
- def install_test(self):
- # https://scikit-learn.org/stable/developers/advanced_installation.html#testing
- with working_dir("spack-test", create=True):
- pytest = which("pytest")
- pytest(join_path(self.prefix, python_purelib, "sklearn"))