diff options
author | Adam J. Stewart <ajstewart426@gmail.com> | 2022-11-07 06:43:37 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-07 15:43:37 +0100 |
commit | 9dcd4fac15ea91d678c81b330ae4c579200bf311 (patch) | |
tree | e514e4df9295cd6c682623562d4fb666cac1bc4b /var | |
parent | 2ab974f5301746f20ff19cb991951158a9c498fd (diff) | |
download | spack-9dcd4fac15ea91d678c81b330ae4c579200bf311.tar.gz spack-9dcd4fac15ea91d678c81b330ae4c579200bf311.tar.bz2 spack-9dcd4fac15ea91d678c81b330ae4c579200bf311.tar.xz spack-9dcd4fac15ea91d678c81b330ae4c579200bf311.zip |
py-modin: add new package (#33724)
Co-authored-by: adamjstewart <adamjstewart@users.noreply.github.com>
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/npm/package.py | 1 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/py-dask/package.py | 26 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/py-modin/package.py | 46 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/py-ray/package.py | 88 |
4 files changed, 119 insertions, 42 deletions
diff --git a/var/spack/repos/builtin/packages/npm/package.py b/var/spack/repos/builtin/packages/npm/package.py index a6898bcba9..3910a0142e 100644 --- a/var/spack/repos/builtin/packages/npm/package.py +++ b/var/spack/repos/builtin/packages/npm/package.py @@ -25,6 +25,7 @@ class Npm(Package): version("3.10.5", sha256="ff019769e186152098841c1fa6325e5a79f7903a45f13bd0046a4dc8e63f845f") depends_on("node-js", type=("build", "run")) + depends_on("libvips") # npm 6.13.4 ships with node-gyp 5.0.5, which contains several Python 3 # compatibility issues on macOS. Manually update to node-gyp 6.0.1 for diff --git a/var/spack/repos/builtin/packages/py-dask/package.py b/var/spack/repos/builtin/packages/py-dask/package.py index c28a8b5747..5e117ceb10 100644 --- a/var/spack/repos/builtin/packages/py-dask/package.py +++ b/var/spack/repos/builtin/packages/py-dask/package.py @@ -138,18 +138,20 @@ class PyDask(PythonPackage): # Requirements for dask.distributed depends_on("py-dill", type=("build", "run"), when="@:0.7.5 +distributed") depends_on("py-pyzmq", type=("build", "run"), when="@:0.7.5 +distributed") - depends_on("py-distributed", type=("build", "run"), when="@0.8.2: +distributed") - depends_on("py-distributed@1.9:", type=("build", "run"), when="@0.9.0: +distributed") - depends_on("py-distributed@1.10:", type=("build", "run"), when="@0.10.0: +distributed") - depends_on("py-distributed@1.14:", type=("build", "run"), when="@0.12.0: +distributed") - depends_on("py-distributed@1.15:", type=("build", "run"), when="@0.13.0: +distributed") - depends_on("py-distributed@1.16:", type=("build", "run"), when="@0.14.1: +distributed") - depends_on("py-distributed@1.20:", type=("build", "run"), when="@0.16.0: +distributed") - depends_on("py-distributed@1.21:", type=("build", "run"), when="@0.17.0: +distributed") - depends_on("py-distributed@1.22:", type=("build", "run"), when="@0.18.0: +distributed") - depends_on("py-distributed@2.0:", type=("build", "run"), when="@2.0.0: +distributed") - depends_on("py-distributed@2020.12.0:", type=("build", "run"), when="@2020.12.0: +distributed") - depends_on("py-distributed@2021.6.2:", type=("build", "run"), when="@2021.6.2: +distributed") + depends_on("py-distributed@:2021.8.0", type=("build", "run"), when="@0.8.2: +distributed") + depends_on("py-distributed@1.9:2021.8.0", type=("build", "run"), when="@0.9.0: +distributed") + depends_on("py-distributed@1.10:2021.8.0", type=("build", "run"), when="@0.10.0: +distributed") + depends_on("py-distributed@1.14:2021.8.0", type=("build", "run"), when="@0.12.0: +distributed") + depends_on("py-distributed@1.15:2021.8.0", type=("build", "run"), when="@0.13.0: +distributed") + depends_on("py-distributed@1.16:2021.8.0", type=("build", "run"), when="@0.14.1: +distributed") + depends_on("py-distributed@1.20:2021.8.0", type=("build", "run"), when="@0.16.0: +distributed") + depends_on("py-distributed@1.21:2021.8.0", type=("build", "run"), when="@0.17.0: +distributed") + depends_on("py-distributed@1.22:2021.8.0", type=("build", "run"), when="@0.18.0: +distributed") + depends_on("py-distributed@2.0:2021.8.0", type=("build", "run"), when="@2.0.0: +distributed") + depends_on( + "py-distributed@2020.12.0:2021.8.0", type=("build", "run"), when="@2020.12.0: +distributed" + ) + depends_on("py-distributed@2021.6.2", type=("build", "run"), when="@2021.6.2 +distributed") # Requirements for dask.diagnostics depends_on("py-bokeh@1.0.0:", type=("build", "run"), when="@2.0.0: +diagnostics") diff --git a/var/spack/repos/builtin/packages/py-modin/package.py b/var/spack/repos/builtin/packages/py-modin/package.py new file mode 100644 index 0000000000..14bfdce366 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-modin/package.py @@ -0,0 +1,46 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyModin(PythonPackage): + """Modin: Make your pandas code run faster by changing one line of code.""" + + homepage = "https://github.com/modin-project/modin" + pypi = "modin/modin-0.16.2.tar.gz" + + version("0.16.2", sha256="8e3f4cb478ae08dcc71b5a345781d57f29d6b95bc6ce1dc5c14d597a382f1354") + + variant( + "engine", + default="ray", + values=["ray", "dask", "python", "native"], + description="Default distribution engine. All engines are installed and " + "functional as long as dependencies are found at run-time", + ) + + depends_on("python@3.6:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-pandas@1.5.1", when="^python@3.8:", type=("build", "run")) + depends_on("py-pandas@1.1.5", when="^python@:3.7", type=("build", "run")) + depends_on("py-packaging", type=("build", "run")) + depends_on("py-numpy@1.18.5:", type=("build", "run")) + depends_on("py-fsspec", type=("build", "run")) + depends_on("py-psutil", type=("build", "run")) + + with when("engine=ray"): + depends_on("py-ray@1.4:+default", type=("build", "run")) + depends_on("py-pyarrow@4.0.1:", type=("build", "run")) + depends_on("py-redis@3.5:3", type=("build", "run")) + + with when("engine=dask"): + depends_on("py-dask@2.22:", type=("build", "run")) + depends_on("py-distributed@2.22:", type=("build", "run")) + depends_on("py-pickle5", when="^python@:3.7", type=("build", "run")) + + def setup_run_environment(self, env): + # modin/config/envvars.py + env.set("MODIN_ENGINE", self.spec.variants["engine"].value) diff --git a/var/spack/repos/builtin/packages/py-ray/package.py b/var/spack/repos/builtin/packages/py-ray/package.py index 3f6de85cdb..a7b07f6f19 100644 --- a/var/spack/repos/builtin/packages/py-ray/package.py +++ b/var/spack/repos/builtin/packages/py-ray/package.py @@ -8,48 +8,76 @@ from spack.package import * class PyRay(PythonPackage): - """A system for parallel and distributed Python that unifies the ML - ecosystem.""" + """Ray provides a simple, universal API for building distributed applications.""" homepage = "https://github.com/ray-project/ray" url = "https://github.com/ray-project/ray/archive/ray-0.8.7.tar.gz" + version("2.0.1", sha256="b8b2f0a99d2ac4c001ff11c78b4521b217e2a02df95fb6270fd621412143f28b") version("0.8.7", sha256="2df328f1bcd3eeb4fa33119142ea0d669396f4ab2a3e78db90178757aa61534b") - build_directory = "python" + variant("default", default=False, description="Install default extras", when="@2.0.1") - depends_on("python@3.6:3.8", type=("build", "run")) - depends_on("bazel@3.2.0", type="build") - depends_on("py-setuptools", type="build") - depends_on("py-cython@0.29.14:", type="build") - depends_on("py-wheel", type="build") + depends_on("python@3.6:3.10", when="@2.0.1", type=("build", "run")) + depends_on("python@3.6:3.8", when="@0.8.7", type=("build", "run")) + depends_on("bazel@4.2.2", when="@2.0.1", type="build") + depends_on("bazel@3.2.0", when="@0.8.7", type="build") depends_on("npm", type="build") - depends_on("py-aiohttp", type=("build", "run")) - depends_on("py-aioredis", type=("build", "run")) - depends_on("py-click@7.0:", type=("build", "run")) - depends_on("py-colorama", type=("build", "run")) - depends_on("py-colorful", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-cython@0.29.26:", when="@2.0.1", type="build") + depends_on("py-cython@0.29.14:", when="@0.8.7", type="build") + depends_on("py-attrs", when="@2.0.1", type=("build", "run")) + depends_on("py-click@7:8.0.4", when="@2.0.1", type=("build", "run")) + depends_on("py-click@7.0:", when="@0.8.7", type=("build", "run")) + depends_on("py-dataclasses", when="@2.0.1 ^python@:3.6", type=("build", "run")) depends_on("py-filelock", type=("build", "run")) - depends_on("py-google", type=("build", "run")) - depends_on("py-gpustat", type=("build", "run")) - depends_on("py-grpcio@1.28.1:", type=("build", "run")) + depends_on("py-grpcio@1.32:1.43.0", when="@2.0.1 ^python@:3.9", type=("build", "run")) + depends_on("py-grpcio@1.42:1.43.0", when="@2.0.1 ^python@3.10:", type=("build", "run")) + depends_on("py-grpcio@1.28.1:", when="@0.8.7", type=("build", "run")) depends_on("py-jsonschema", type=("build", "run")) - depends_on("py-msgpack@1.0:1", type=("build", "run")) - depends_on("py-numpy@1.16:", type=("build", "run")) - depends_on("py-protobuf@3.8.0:", type=("build", "run")) - depends_on("py-py-spy@0.2.0:", type=("build", "run")) + depends_on("py-msgpack@1", type=("build", "run")) + depends_on("py-numpy@1.16:", when="^python@:3.8", type=("build", "run")) + depends_on("py-numpy@1.19.3:", when="^python@3.9:", type=("build", "run")) + depends_on("py-protobuf@3.15.3:3", when="@2.0.1", type=("build", "run")) + depends_on("py-protobuf@3.8.0:", when="@0.8.7", type=("build", "run")) depends_on("py-pyyaml", type=("build", "run")) + depends_on("py-frozenlist", when="@2.0.1", type=("build", "run")) depends_on("py-requests", type=("build", "run")) - depends_on("py-redis@3.3.2:3.4", type=("build", "run")) - depends_on("py-opencensus", type=("build", "run")) - depends_on("py-prometheus-client@0.7.1:", type=("build", "run")) - # If not guarded by SKIP_THIRDPARTY_INSTALL, those dependencies - # would be automatically installed via pip by the setup.py script. - depends_on("py-setproctitle", type=("build", "run")) - depends_on("py-psutil", type=("build", "run")) - # If not detected during install, the following dependency would - # be automatically downloaded and installed by the setup.py script. - depends_on("py-pickle5", when="^python@:3.8.1", type=("build", "run")) + depends_on("py-typing-extensions", when="@2.0.1 ^python@:3.7", type=("build", "run")) + depends_on("py-virtualenv", when="@2.0.1", type=("build", "run")) + + with when("+default"): + depends_on("py-aiohttp@3.7:", type=("build", "run")) + depends_on("py-aiohttp-cors", type=("build", "run")) + depends_on("py-colorful", type=("build", "run")) + depends_on("py-py-spy@0.2:", type=("build", "run")) + depends_on("py-gpustat@1:", type=("build", "run")) + depends_on("py-opencensus", type=("build", "run")) + depends_on("py-pydantic", type=("build", "run")) + depends_on("py-prometheus-client@0.7.1:0.13", type=("build", "run")) + depends_on("py-smart-open", type=("build", "run")) + + # Historical dependencies + with when("@0.8.7"): + depends_on("py-aiohttp", type=("build", "run")) + depends_on("py-aioredis", type=("build", "run")) + depends_on("py-colorama", type=("build", "run")) + depends_on("py-colorful", type=("build", "run")) + depends_on("py-google", type=("build", "run")) + depends_on("py-gpustat", type=("build", "run")) + depends_on("py-py-spy@0.2.0:", type=("build", "run")) + depends_on("py-redis@3.3.2:3.4", type=("build", "run")) + depends_on("py-opencensus", type=("build", "run")) + depends_on("py-prometheus-client@0.7.1:", type=("build", "run")) + # If not guarded by SKIP_THIRDPARTY_INSTALL, those dependencies + # would be automatically installed via pip by the setup.py script. + depends_on("py-setproctitle", type=("build", "run")) + depends_on("py-psutil", type=("build", "run")) + # If not detected during install, the following dependency would + # be automatically downloaded and installed by the setup.py script. + depends_on("py-pickle5", when="^python@:3.8.1", type=("build", "run")) + + build_directory = "python" def setup_build_environment(self, env): env.set("SKIP_THIRDPARTY_INSTALL", "1") |