py-pyarrow: add v19.0.1 (#49149)

* py-pyarrow: add v19.0.1

* Environment variables no longer needed either

* Remove py-pyarrow variants
This commit is contained in:
Adam J. Stewart 2025-03-04 13:20:52 +01:00 committed by GitHub
parent b5f40aa7fb
commit 631bddc52e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 62 additions and 49 deletions

View File

@ -16,6 +16,7 @@ class Arrow(CMakePackage, CudaPackage):
license("Apache-2.0")
version("19.0.1", sha256="4c898504958841cc86b6f8710ecb2919f96b5e10fa8989ac10ac4fca8362d86a")
version("18.0.0", sha256="9c473f2c9914c59ab571761c9497cf0e5cfd3ea335f7782ccc6121f5cb99ae9b")
version("16.1.0", sha256="9762d9ecc13d09de2a03f9c625a74db0d645cb012de1e9a10dfed0b4ddc09524")
version("15.0.2", sha256="4735b349845bff1fe95ed11abbfed204eb092cabc37523aa13a80cb830fe5b5e")
@ -41,8 +42,8 @@ class Arrow(CMakePackage, CudaPackage):
version("0.9.0", sha256="65f89a3910b6df02ac71e4d4283db9b02c5b3f1e627346c7b6a5982ae994af91")
version("0.8.0", sha256="c61a60c298c30546fc0b418a35be66ef330fb81b06c49928acca7f1a34671d54")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("boost@1.60: +filesystem +system")
depends_on("brotli", when="+brotli")
@ -95,6 +96,7 @@ class Arrow(CMakePackage, CudaPackage):
variant(
"compute", default=False, description="Computational kernel functions and other support"
)
variant("dataset", default=False, description="Build the Arrow Dataset integration")
variant("gandiva", default=False, description="Build Gandiva support")
variant(
"glog",
@ -156,6 +158,7 @@ def cmake_args(self):
args.append(self.define_from_variant("ARROW_COMPUTE", "compute"))
args.append(self.define_from_variant("ARROW_CUDA", "cuda"))
args.append(self.define_from_variant("ARROW_DATASET", "dataset"))
args.append(self.define_from_variant("ARROW_GANDIVA", "gandiva"))
args.append(self.define_from_variant("ARROW_GLOG", "glog"))
args.append(self.define_from_variant("ARROW_HDFS", "hdfs"))

View File

@ -29,7 +29,8 @@ class PyCudf(PythonPackage):
depends_on("py-cython", type="build")
depends_on("py-numba@0.40.0:", type=("build", "run"))
depends_on("py-numpy@1.14.4:", type=("build", "run"))
depends_on("py-pyarrow+cuda+orc+parquet", type=("build", "run"))
depends_on("py-pyarrow", type=("build", "run"))
depends_on("arrow+cuda+orc+parquet")
depends_on("py-pandas@0.23.4:", type=("build", "run"))
depends_on("py-rmm", type=("build", "run"))
depends_on("cuda@10:")

View File

@ -21,5 +21,6 @@ class PyDaskExpr(PythonPackage):
# Can't do circular run-time dependencies yet?
# depends_on("py-dask@2024.7.1", type="run")
depends_on("py-pyarrow@7: +dataset", type="run")
depends_on("py-pyarrow@7:", type="run")
depends_on("arrow+dataset")
depends_on("py-pandas@2:", type="run")

View File

@ -39,7 +39,8 @@ class PyDatasets(PythonPackage):
depends_on("py-fsspec@:0.8.0", when="^python@:3.7")
depends_on("py-huggingface-hub@:0.0")
depends_on("py-importlib-metadata", when="^python@:3.7")
depends_on("py-pyarrow@1:3+parquet")
depends_on("py-pyarrow@1:3")
depends_on("arrow+parquet")
depends_on("py-tqdm@4.27:4.49")
with when("@2.8.0"):
depends_on("py-responses@:0.18")
@ -49,7 +50,8 @@ class PyDatasets(PythonPackage):
depends_on("py-dill@:0.3.6")
depends_on("py-fsspec@2021.11.1:+http")
depends_on("py-huggingface-hub@0.2:0")
depends_on("py-pyarrow@6:+parquet")
depends_on("py-pyarrow@6:")
depends_on("arrow+parquet")
depends_on("py-tqdm@4.62.1:")
depends_on("python@3.7:")
with when("@2.20.0:"):
@ -57,7 +59,8 @@ class PyDatasets(PythonPackage):
depends_on("py-dill@0.3.0:0.3.8") # temporary upper bound
depends_on("py-fsspec@2023.1.0:2024.5.0+http")
depends_on("py-huggingface-hub@0.21.2:")
depends_on("py-pyarrow@15:+parquet+dataset")
depends_on("py-pyarrow@15:")
depends_on("arrow+parquet+dataset")
depends_on("py-requests@2.32.2:")
depends_on("py-tqdm@4.66.3:")
depends_on("python@3.8:")

View File

@ -5,7 +5,7 @@
from spack.package import *
class PyPyarrow(PythonPackage, CudaPackage):
class PyPyarrow(PythonPackage):
"""A cross-language development platform for in-memory data.
This package contains the Python bindings.
@ -19,6 +19,7 @@ class PyPyarrow(PythonPackage, CudaPackage):
license("Apache-2.0")
version("19.0.1", sha256="3bf266b485df66a400f282ac0b6d1b500b9d2ae73314a153dbe97d6d5cc8a99e")
version("16.1.0", sha256="15fbb22ea96d11f0b5768504a3f961edab25eaf4197c341720c4a387f6c60315")
version("15.0.2", sha256="9c9bc803cb3b7bfacc1e96ffbfd923601065d9d3f911179d81e72d99fd74a3d9")
version("14.0.2", sha256="36cef6ba12b499d864d1def3e990f97949e0b79400d08b7cf74504ffbd3eb025")
@ -36,39 +37,31 @@ class PyPyarrow(PythonPackage, CudaPackage):
version("0.11.0", sha256="07a6fd71c5d7440f2c42383dd2c5daa12d7f0a012f1e88288ed08a247032aead")
version("0.9.0", sha256="7db8ce2f0eff5a00d6da918ce9f9cfec265e13f8a119b4adb1595e5b19fd6242")
depends_on("cxx", type="build") # generated
depends_on("cxx", type="build")
variant("parquet", default=False, description="Build with Parquet support")
variant("orc", default=False, description="Build with orc support")
variant("dataset", default=False, description="Build with Dataset support")
with default_args(type="build"):
# CMakeLists.txt
depends_on("cmake@3.16:", when="@13:")
depends_on("cmake@3.5:", when="@11:")
depends_on("cmake@3.2:", when="@0.17:")
depends_on("cmake@2.7:")
conflicts("~parquet", when="+dataset")
# cmake_modules and pyarrow/__init__.py
depends_on("pkgconfig")
depends_on("cmake@3.0.0:", type="build")
depends_on("pkgconfig", type="build")
depends_on("python@3.8:", type=("build", "run"), when="@13:")
depends_on("python@3.7:", type=("build", "run"), when="@7:")
depends_on("python@3.6:", type=("build", "run"), when="@3:")
depends_on("python@3.5:", type=("build", "run"), when="@0.17:")
depends_on("py-setuptools", type="build")
depends_on("py-setuptools@40.1.0:", type="build", when="@10.0.1:")
depends_on("py-setuptools@38.6.0:", type="build", when="@7:")
depends_on("py-setuptools-scm@:7", type="build", when="@0.15:")
depends_on("py-cython", type="build")
depends_on("py-cython@0.29.31:", type="build", when="@14:")
depends_on("py-cython@0.29.31:2", type="build", when="@12:13")
depends_on("py-cython@0.29.22:2", type="build", when="@8:11")
depends_on("py-cython@0.29:2", type="build", when="@0.15:7")
depends_on("py-cython@:2", type="build", when="@:0.14")
# in newer pip versions --install-option does not exist
depends_on("py-pip@:23.0", type="build")
depends_on("py-numpy@1.16.6:", type=("build", "run"), when="@3:")
# Prior to python 3.9 numpy must be >=0.14,<1.25
depends_on("py-numpy@0.14:1.24", when="^python@:3.8", type=("build", "run"))
depends_on("py-numpy@1.25:", when="^python@3.9:", type=("build", "run"))
# https://github.com/apache/arrow/issues/39532
depends_on("py-numpy@:1", when="@:15", type=("build", "run"))
# pyproject.toml, setup.py
depends_on("py-cython@0.29.31:", when="@14:")
depends_on("py-cython@0.29.31:2", when="@12:13")
depends_on("py-cython@0.29.22:2", when="@8:11")
depends_on("py-cython@0.29:2", when="@0.15:7")
depends_on("py-cython@:2", when="@:0.14")
depends_on("py-setuptools-scm@8:+toml", when="@17:")
depends_on("py-setuptools-scm", when="@16")
depends_on("py-setuptools-scm@:7", when="@0.15:15")
depends_on("py-setuptools@64:", when="@17:")
depends_on("py-setuptools@40.1:", when="@10.0.1:")
depends_on("py-setuptools@38.6:", when="@7:")
depends_on("py-setuptools")
arrow_versions = (
"@0.9.0",
@ -87,29 +80,41 @@ class PyPyarrow(PythonPackage, CudaPackage):
"@14.0.2",
"@15.0.2",
"@16.1.0",
"@19.0.1",
)
for v in arrow_versions:
depends_on("arrow+python" + v, when=v)
depends_on("arrow+parquet+python" + v, when="+parquet" + v)
depends_on("arrow+cuda" + v, when="+cuda" + v)
depends_on("arrow+orc" + v, when="+orc" + v)
# Historical dependencies
# In newer pip versions --install-option does not exist
depends_on("py-pip@:23.0", when="@:16", type="build")
with default_args(type=("build", "run")):
# pyproject.toml, setup.py
depends_on("py-numpy@1.16.6:", when="@3:17")
depends_on("py-numpy@1.14:", when="@0.11:")
depends_on("py-numpy@1.10:")
depends_on("py-numpy@:1", when="@:15")
patch("for_aarch64.patch", when="@0 target=aarch64:")
# Starting with pyarrow 17+, backend support is built if arrow was built with it
@when("@:16")
def setup_build_environment(self, env):
env.set("PYARROW_WITH_PARQUET", self.spec.satisfies("+parquet"))
env.set("PYARROW_WITH_CUDA", self.spec.satisfies("+cuda"))
env.set("PYARROW_WITH_ORC", self.spec.satisfies("+orc"))
env.set("PYARROW_WITH_DATASET", self.spec.satisfies("+dataset"))
env.set("PYARROW_WITH_PARQUET", self.spec.satisfies("^arrow+parquet"))
env.set("PYARROW_WITH_CUDA", self.spec.satisfies("^arrow+cuda"))
env.set("PYARROW_WITH_ORC", self.spec.satisfies("^arrow+orc"))
env.set("PYARROW_WITH_DATASET", self.spec.satisfies("^arrow+dataset"))
@when("@:16")
def install_options(self, spec, prefix):
args = []
if spec.satisfies("+parquet"):
if spec.satisfies("^arrow+parquet"):
args.append("--with-parquet")
if spec.satisfies("+cuda"):
if spec.satisfies("^arrow+cuda"):
args.append("--with-cuda")
if spec.satisfies("+orc"):
if spec.satisfies("^arrow+orc"):
args.append("--with-orc")
if spec.satisfies("+dataset"):
if spec.satisfies("^arrow+dataset"):
args.append("--with-dataset")
return args