py-earth2mip: add new package (#43062)

* py-earth2mip: add new package

* Fix audit tests

* Make things easier to concretize

* Make things easier to concretize

* Fix magics build

* Fix onnx build

* blacken

* cmake > py-cmake

* Fix onnxruntime build

* onnxruntime: remove unknown cmake vars

* Trick bazelisk into using Spack bazel

* Different deps for main

* protobuf: add v3.25.3

* Enforce upper bound on jaxlib version

* py-chex: add v0.1.85

* py-dm-haiku: add v0.0.12

* py-jax: add v0.4.25

* Older jaxlib doesn't build on ppc64le either
This commit is contained in:
Adam J. Stewart 2024-03-11 20:28:03 +01:00 committed by GitHub
parent 3934df622c
commit 98162aa2e1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
45 changed files with 782 additions and 102 deletions

View file

@ -17,6 +17,9 @@ class AbseilCpp(CMakePackage):
license("Apache-2.0")
version(
"20240116.1", sha256="3c743204df78366ad2eaf236d6631d83f6bc928d1705dd0000b872e53b73dc6a"
)
version(
"20230802.1", sha256="987ce98f02eefbaf930d6e38ab16aa05737234d7afbab2d5c4ea7adbe50c28ed"
)
@ -71,8 +74,8 @@ class AbseilCpp(CMakePackage):
description="C++ standard used during compilation",
)
depends_on("cmake@3.10:", when="@2023:", type="build")
depends_on("cmake@3.5:", when="@2019:", type="build")
depends_on("cmake@3.10:", when="@20220907:", type="build")
depends_on("cmake@3.5:", when="@20190312:", type="build")
depends_on("cmake@3.1:", type="build")
def cmake_args(self):

View file

@ -14,14 +14,15 @@ class Magics(CMakePackage):
software MAGICS. Although completely redesigned in C++, it is intended
to be as backwards-compatible as possible with the Fortran interface."""
homepage = "https://software.ecmwf.int/wiki/display/MAGP/Magics"
homepage = "https://confluence.ecmwf.int/display/MAGP/Magics"
url = "https://confluence.ecmwf.int/download/attachments/3473464/Magics-4.2.4-Source.tar.gz?api=v2"
list_url = "https://software.ecmwf.int/wiki/display/MAGP/Releases"
list_url = "https://confluence.ecmwf.int/display/MAGP/Releases"
license("Apache-2.0")
# The policy on which minor releases remain available and which get deleted
# after a newer version becomes available is unclear.
version("4.15.3", sha256="1836e1e37534c556f55b5b13812a513091c2fa508b8c4f5a8b6842f07741f1a7")
version("4.9.3", sha256="c01ee7c4b05c5512e93e573748d2766d299fa1a60c226f2a0d0989f3d7c5239b")
version("4.4.0", sha256="544058cd334f3e28a16d00ea7811e13cdf282f9c1ebec2ad7868171d925abd24")
version("4.3.3", sha256="27d3de71cf41f3d557fd85dabaea2baaab34c4c6422a5b5b15071a6a53387601")
@ -86,7 +87,7 @@ class Magics(CMakePackage):
# Even if netcdf is disabled and -DENABLE_NETCDF=OFF is set, building
# magics still requires legacy netcdf-cxx
depends_on("netcdf-cxx", when="@4.1.0:4.3.1")
conflicts("~netcdf", when="@4.1.0:4.3.1,4.15.3:")
# Optional dependencies
depends_on("netcdf-cxx", when="+netcdf")
@ -151,3 +152,13 @@ def cmake_args(self):
args.append("-DENABLE_METVIEW=OFF")
return args
@property
def libs(self):
return find_libraries(["libMagPlus"], root=self.prefix, recursive=True)
@property
def headers(self):
hl = find_all_headers(self.prefix.include)
hl.directories = [self.prefix.include, self.prefix.include.magics]
return hl

View file

@ -16,6 +16,7 @@ class Protobuf(CMakePackage):
license("BSD-3-Clause")
version("3.25.3", sha256="da82be8acc5347c7918ef806ebbb621b24988f7e1a19b32cd7fc73bc29b59186")
version("3.24.3", sha256="2c23dee0bdbc36bd43ee457083f8f5560265d0815cc1c56033de3932843262fe")
version("3.23.3", sha256="5e4b555f72a7e3f143a7aff7262292500bb02c49b174351684bb70fc7f2a6d33")
version("3.22.2", sha256="2118051b4fb3814d59d258533a4e35452934b1ddb41230261c9543384cbb4dfc")

View file

@ -14,14 +14,19 @@ class PyAiobotocore(PythonPackage):
license("Apache-2.0")
version("2.12.1", sha256="8706b28f16f93c541f6ed50352115a79d8f3499539f8d0bb70aa0f7a5379c1fe")
version("2.5.0", sha256="6a5b397cddd4f81026aa91a14c7dd2650727425740a5af8ba75127ff663faf67")
version("2.4.2", sha256="0603b74a582dffa7511ce7548d07dc9b10ec87bc5fb657eb0b34f9bd490958bf")
version("1.2.1", sha256="58cc422e65fc89f7cb78eca740d241ac8e15f39f6b308cc23152711e8a987d45")
depends_on("py-setuptools", type="build")
depends_on("py-botocore@1.34.41:1.34.51", when="@2.12.1", type=("build", "run"))
depends_on("py-botocore@1.27.59", when="@2.4.2", type=("build", "run"))
depends_on("py-botocore@1.19.52", when="@1.2.1", type=("build", "run"))
depends_on("py-botocore@1.29.76", when="@2.5.0", type=("build", "run"))
depends_on("py-aiohttp@3.3.1:", type=("build", "run"))
depends_on("py-wrapt@1.10.10:", type=("build", "run"))
depends_on("py-aioitertools@0.5.1:", type=("build", "run"))
depends_on("py-aiohttp@3.7.4:3", when="@2.12:", type=("build", "run"))
depends_on("py-aiohttp@3.3.1:", when="@:2.5", type=("build", "run"))
depends_on("py-wrapt@1.10.10:1", when="@2.12:", type=("build", "run"))
depends_on("py-wrapt@1.10.10:", when="@:2.5", type=("build", "run"))
depends_on("py-aioitertools@0.5.1:0", when="@2.12:", type=("build", "run"))
depends_on("py-aioitertools@0.5.1:", when="@:2.5", type=("build", "run"))

View file

@ -7,13 +7,14 @@
class PyCdsapi(PythonPackage):
"""The Climate Data Store Application Program Interface is a service providing programmatic access to CDS data. Get your UID and API key from the CDS portal at the address https://cds.climate.copernicus.eu/user and write it into the configuration file. Look at https://pypi.org/project/cdsapi/ for an example"""
"""Climate Data Store API."""
homepage = "https://cds.climate.copernicus.eu"
pypi = "cdsapi/cdsapi-0.2.3.tar.gz"
license("Apache-2.0")
version("0.6.1", sha256="7d40c58e3fd3e75a8acdcdc81eab4ef9b6f763b2902ba01d7d1738f3652a5a30")
version("0.2.3", sha256="333b31ec263224399635db9b21a2e1a50cd73451f5179f8d967437e7c9161d9b")
depends_on("py-setuptools", type="build")

View file

@ -15,21 +15,26 @@ class PyCfgrib(PythonPackage):
license("Apache-2.0")
version("0.9.10.4", sha256="b490078192aa13ec89c77296110355521442325866b16a996f4b3cf421542909")
version("0.9.9.0", sha256="6ff0227df9c5ee34aa7d6ab1f7af3fbe6838523a8a9891c74040b419b03ad289")
version("0.9.8.5", sha256="07c224d7ac823a1df5738b96b9d3621515538f51f67e55044f9cc8ec1668e1bd")
# Warning: can create infinite dependency loop with xarray+io ^cfgrib+xarray
variant("xarray", default=False, description="Add xarray support")
depends_on("python@3.5:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-pytest-runner", when="@0.9.8.5", type="build")
depends_on("py-attrs@19.2:", type=("build", "run"))
depends_on("py-cffi", when="@0.9.8.5", type=("build", "run"))
depends_on("py-click", type=("build", "run"))
depends_on("py-eccodes@0.9.8:", when="@0.9.10:", type=("build", "run"))
depends_on("py-eccodes", type=("build", "run"))
depends_on("py-numpy", type=("build", "run"))
depends_on("py-xarray@0.12.0:", when="+xarray", type=("build", "run"))
depends_on("py-xarray@0.15:", when="@0.9.10:+xarray", type=("build", "run"))
depends_on("py-xarray@0.12:", when="+xarray", type=("build", "run"))
# Historical dependencies
depends_on("py-pytest-runner", when="@0.9.8.5", type="build")
depends_on("py-cffi", when="@0.9.8.5", type=("build", "run"))
@property
def import_modules(self):

View file

@ -15,14 +15,24 @@ class PyChex(PythonPackage):
license("Apache-2.0")
version("0.1.85", sha256="a27cfe87119d6e1fe24ccc1438a59195e6dc1d6e0e10099fcf618c3f64771faf")
version("0.1.5", sha256="686858320f8f220c82a6c7eeb54dcdcaa4f3d7f66690dacd13a24baa1ee8299e")
version("0.1.0", sha256="9e032058f5fed2fc1d5e9bf8e12ece5910cf6a478c12d402b6d30984695f2161")
depends_on("python@3.7:", type=("build", "run"))
depends_on("python@3.9:", type=("build", "run"), when="@0.1.85:")
depends_on("py-setuptools", type="build")
depends_on("py-absl-py@0.9.0:", type=("build", "run"))
depends_on("py-dm-tree@0.1.5:", type=("build", "run"))
depends_on("py-typing-extensions@4.2:", type=("build", "run"), when="@0.1.85:")
depends_on("py-jax@0.4.16:", type=("build", "run"), when="@0.1.85:")
depends_on("py-jax@0.1.55:", type=("build", "run"))
depends_on("py-jaxlib@0.1.37:", type=("build", "run"))
depends_on("py-numpy@1.24.1:", type=("build", "run"), when="@0.1.85:")
depends_on("py-numpy@1.18.0:", type=("build", "run"))
depends_on("py-setuptools", type=("build", "run"), when="@0.1.85: ^python@3.12:")
depends_on("py-toolz@0.9.0:", type=("build", "run"))
# Historical dependencies
depends_on("py-dm-tree@0.1.5:", type=("build", "run"), when="@:0.1.5")
# AttributeError: module 'jax.interpreters.pxla' has no attribute 'ShardedDeviceArray'
conflicts("^py-jax@0.4.14:", when="@:0.1.5")

View file

@ -0,0 +1,19 @@
# Copyright 2013-2024 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 PyColabtools(PythonPackage):
"""Tools to work with colab from google."""
homepage = "https://github.com/zuuuhkrit/colabtools"
pypi = "colabtools/colabtools-0.0.1.tar.gz"
license("LGPL-3.0-only")
version("0.0.1", sha256="b6f7c0050e5924f4ad7e4762d46be663e21d417a39fc4adf6c6c90e8d9be47ec")
depends_on("py-setuptools", type="build")

View file

@ -15,16 +15,31 @@ class PyDmHaiku(PythonPackage):
license("Apache-2.0")
version("0.0.12", sha256="ba0b3acf71433156737fe342c486da11727e5e6c9e054245f4f9b8f0b53eb608")
version("0.0.7", sha256="86c34af6952a305a4bbfda6b9925998577acc4aa2ad9333da3d6047f4f8ed7c1")
version("0.0.5", sha256="e986237e1f840aa3bd26217ecad84b611bf1456e2139f0f79ea71f9c6222d231")
depends_on("python@3.7:", type=("build", "run"))
variant("jax", default=False, description="Build with JAX support", when="@0.0.12:")
# setup.py
depends_on("python@3.9:", when="@0.0.12:", type=("build", "run"))
depends_on("py-setuptools", type="build")
# requirements.txt
depends_on("py-absl-py@0.7.1:", type=("build", "run"))
depends_on("py-jmp@0.0.2:", type=("build", "run"))
depends_on("py-numpy@1.18.0:", type=("build", "run"))
depends_on("py-tabulate@0.8.9:", type=("build", "run"))
depends_on("py-flax@0.7.1:", when="@0.0.12:", type=("build", "run"))
# requirements-jax.txt
with when("+jax"):
depends_on("py-jax@0.4.24:", type=("build", "run"))
depends_on("py-jaxlib@0.4.24:", type=("build", "run"))
# Historical dependencies
depends_on("py-typing-extensions", when="^python@:3.7", type=("build", "run"))
# from README.md:
# Because JAX installation is different depending on your CUDA version, Haiku does
# not list JAX as a dependency in `requirements.txt`.
depends_on("py-jax", type=("build", "run"))
depends_on("py-jax", when="@:0.0.7", type=("build", "run"))
# AttributeError: module 'jax' has no attribute 'xla'
conflicts("^py-jax@0.4.14:", when="@:0.0.7")

View file

@ -0,0 +1,83 @@
# Copyright 2013-2024 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 PyEarth2mip(PythonPackage):
"""Earth-2 Model Intercomparison Project (MIP).
A python framework that enables climate researchers and scientists to explore
and experiment with AI models for weather and climate.
"""
homepage = "https://github.com/NVIDIA/earth2mip"
url = "https://github.com/NVIDIA/earth2mip/archive/refs/tags/v0.1.0.tar.gz"
git = "https://github.com/NVIDIA/earth2mip.git"
maintainers("adamjstewart")
license("Apache-2.0")
version("main", branch="main")
version("0.1.0", sha256="a49d0607893013783d30bfcb2f80412014ab535fbcc1e96dd139b78819bd98ab")
variant("pangu", default=False, description="Build dependencies needed for Pangu-Weather")
variant("graphcast", default=False, description="Build dependencies needed for GraphCast")
with default_args(type="build"):
depends_on("py-setuptools")
depends_on("py-setuptools-scm")
with default_args(type=("build", "run")):
depends_on("python@3.10:")
depends_on("py-altair@4.2.2:")
depends_on("py-boto3@1.26.0:", when="@main")
depends_on("py-cdsapi@0.6.1:")
depends_on("py-cfgrib@0.9.10.3:")
depends_on("py-cftime")
depends_on("py-dask@2023.1.0:")
depends_on("py-distributed@2023.1.0:")
depends_on("py-eccodes@1.4.0:")
depends_on("py-ecmwflibs@0.5.2:")
depends_on("py-ecmwf-opendata@0.2.0:", when="@main")
depends_on("py-einops")
depends_on("py-fsspec")
depends_on("py-h5py@3.2.0:")
depends_on("py-h5netcdf@1.0.0:")
depends_on("py-importlib-metadata@6.7.0:")
depends_on("py-joblib@1.1.0:")
depends_on("py-loguru@0.6.0:", when="@main")
depends_on("py-netcdf4@1.6.4:")
depends_on("py-numpy")
depends_on("py-nvidia-modulus@0.4.0:")
depends_on("py-pandas@1.5.3:")
depends_on("py-properscoring@0.1:")
depends_on("py-pydantic@1.10:1.10.11")
depends_on("py-pytest-timeout@2.1.0:", when="@main")
depends_on("py-pytest-asyncio@0.21.0:")
depends_on("py-pytest-regtest")
depends_on("py-pytest@7.0.0:")
depends_on("py-python-dotenv@1.0.0:")
depends_on("py-s3fs")
depends_on("py-setuptools@38.4:")
depends_on("py-torch@1.13:")
depends_on("py-torch-harmonics@0.5.0:")
depends_on("py-tqdm@4.65.0:")
depends_on("py-typer")
depends_on("py-xarray")
depends_on("py-xskillscore@0.0.24:")
depends_on("py-zarr@2.14.2:")
with default_args(type="run"):
with when("+pangu"):
depends_on("py-onnxruntime@1.15.1:")
with when("+graphcast"):
depends_on("py-flax@0.7.3", when="@main")
depends_on("py-jax@0.4.16")
depends_on("py-graphcast@0.1")
depends_on("py-gcsfs")
depends_on("py-gcsfs@2023.6.0:", when="@0.1.0")

View file

@ -0,0 +1,20 @@
# Copyright 2013-2024 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 PyEcmwfOpendata(PythonPackage):
"""A package to download ECMWF open data."""
homepage = "https://github.com/ecmwf/ecmwf-opendata"
pypi = "ecmwf-opendata/ecmwf-opendata-0.3.3.tar.gz"
license("Apache-2.0")
version("0.3.3", sha256="6f3181c7872b72e5529d2b4b7ec6ff08d37c37beee0a498f7f286410be178c6a")
depends_on("py-setuptools", type="build")
depends_on("py-multiurl@0.2.1:", type=("build", "run"))

View file

@ -0,0 +1,34 @@
# Copyright 2013-2024 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 PyEcmwflibs(PythonPackage):
"""A Python package that wraps some of ECMWF libraries to be used by
Python interfaces to ECMWF software.
"""
homepage = "https://github.com/ecmwf/ecmwflibs"
url = "https://github.com/ecmwf/ecmwflibs/archive/refs/tags/0.6.1.tar.gz"
license("Apache-2.0")
version("0.6.1", sha256="9f2153d1b4a07038b975b7d6bb89bbf9e88d6bc4e2ef4d4e067e58a2fb5270d3")
depends_on("py-setuptools", type="build")
depends_on("py-findlibs", type=("build", "run"))
depends_on("eccodes")
depends_on("magics")
def patch(self):
# Instruct setup.py where to find dependencies
library_dirs = self.spec["eccodes"].libs.directories + self.spec["magics"].libs.directories
include_dirs = (
self.spec["eccodes"].headers.directories + self.spec["magics"].headers.directories
)
setup = FileFilter("setup.py")
setup.filter("library_dirs=.*", f"library_dirs={library_dirs},")
setup.filter("include_dirs=.*", f"include_dirs={include_dirs},")

View file

@ -15,14 +15,23 @@ class PyEtils(PythonPackage):
license("Apache-2.0")
version("1.7.0", sha256="97b68fd25e185683215286ef3a54e38199b6245f5fe8be6bedc1189be4256350")
version("0.9.0", sha256="489103e9e499a566765c60458ee15d185cf0065f2060a4d16a68f8f46962ed0d")
variant("epath", default=False, description="with epath module")
variant("epy", default=False, description="with epy module")
depends_on("python@3.7:", type=("build", "run"))
depends_on("py-importlib-resources", type=("build", "run"), when="+epath")
depends_on("py-typing-extensions", type=("build", "run"), when="+epath")
depends_on("py-zipp", type=("build", "run"), when="+epath")
depends_on("python@3.10:", type=("build", "run"), when="@1.7:")
depends_on("py-flit-core@3.8:3", type="build", when="@1.7:")
depends_on("py-flit-core@3.5:3", type="build")
conflicts("~epy", when="+epath")
with when("+epath"):
depends_on("py-fsspec", type=("build", "run"), when="@1.7:")
depends_on("py-importlib-resources", type=("build", "run"))
depends_on("py-typing-extensions", type=("build", "run"))
depends_on("py-zipp", type=("build", "run"))
with when("+epy"):
depends_on("py-typing-extensions", type=("build", "run"))

View file

@ -0,0 +1,36 @@
# Copyright 2013-2024 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 PyFlax(PythonPackage):
"""Flax: A neural network library for JAX designed for flexibility."""
homepage = "https://github.com/google/flax"
pypi = "flax/flax-0.8.1.tar.gz"
license("Apache-2.0")
version("0.8.1", sha256="ce3d99e9b4c0d2e4d9fc28bc56cced8ba953adfd695aabd24f096b4c8a7e2f92")
version("0.7.3", sha256="e9dbc7eb6c80d31277f97b626c07978d2a84f1bb635cf05957a02a3a496493e6")
with default_args(type="build"):
depends_on("py-setuptools")
depends_on("py-setuptools-scm")
with default_args(type=("build", "run")):
depends_on("python@3.9:", when="@0.8:")
depends_on("py-numpy@1.22:", when="@0.8:")
depends_on("py-numpy@1.12:")
depends_on("py-jax@0.4.19:", when="@0.8:")
depends_on("py-jax@0.4.2:")
depends_on("py-msgpack")
depends_on("py-optax")
depends_on("py-orbax-checkpoint")
depends_on("py-tensorstore")
depends_on("py-rich@11.1:")
depends_on("py-typing-extensions@4.2:")
depends_on("py-pyyaml@5.4.1:")

View file

@ -14,6 +14,7 @@ class PyFlitCore(PythonPackage):
# Tests import of a non-existing package
skip_modules = ["flit_core.tests"]
tags = ["build-tools"]
maintainers("takluyver")

View file

@ -17,6 +17,7 @@ class PyFsspec(PythonPackage):
# Requires pytest
skip_modules = ["fsspec.tests"]
version("2024.2.0", sha256="b6ad1a679f760dda52b1168c859d01b7b80648ea6f7f7c7f5a8a91dc3f3ecb84")
version("2023.10.0", sha256="330c66757591df346ad3091a53bd907e15348c2ba17d63fd54f5c39c4457d2a5")
version("2023.1.0", sha256="fbae7f20ff801eb5f7d0bedf81f25c787c0dfac5e982d98fa3884a9cde2b5411")
version("2022.11.0", sha256="259d5fd5c8e756ff2ea72f42e7613c32667dc2049a4ac3d84364a7ca034acb8b")
@ -30,5 +31,5 @@ class PyFsspec(PythonPackage):
variant("http", default=False, description="HTTPFileSystem support", when="@0.8.1:")
depends_on("py-setuptools", type="build")
depends_on("py-requests", type=("build", "run"), when="+http")
depends_on("py-requests", type=("build", "run"), when="@:2023+http")
depends_on("py-aiohttp", type=("build", "run"), when="+http")

View file

@ -14,12 +14,14 @@ class PyGcsfs(PythonPackage):
license("BSD-3-Clause")
version("2024.2.0", sha256="f7cffd7cae2fb50c56ef883f8aef9792be045b5059f06c1902c3a6151509f506")
version("2023.1.0", sha256="0a7b7ca8c1affa126a14ba35d7b7dff81c49e2aaceedda9732c7f159a4837a26")
depends_on("py-setuptools", type="build")
depends_on("py-aiohttp", type=("build", "run"))
depends_on("py-decorator@4.1.3:", type=("build", "run"))
depends_on("py-fsspec@2023.1.0", type=("build", "run"))
depends_on("py-fsspec@2024.2.0", type=("build", "run"), when="@2024.2.0")
depends_on("py-fsspec@2023.1.0", type=("build", "run"), when="@2023.1.0")
depends_on("py-google-auth@1.2:", type=("build", "run"))
depends_on("py-google-auth-oauthlib", type=("build", "run"))
depends_on("py-google-cloud-storage", type=("build", "run"))

View file

@ -0,0 +1,36 @@
# Copyright 2013-2024 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 PyGraphcast(PythonPackage):
"""GraphCast: Learning skillful medium-range global weather forecasting."""
homepage = "https://github.com/google-deepmind/graphcast"
url = "https://github.com/google-deepmind/graphcast/archive/refs/tags/v0.1.tar.gz"
license("Apache-2.0")
version("0.1", sha256="a51a59b9ee42586ec2883257ae42a23b5653f643a47c608096f497524a17af48")
depends_on("py-setuptools", type="build")
with default_args(type=("build", "run")):
depends_on("py-cartopy")
depends_on("py-chex")
depends_on("py-colabtools")
depends_on("py-dask")
depends_on("py-dm-haiku")
depends_on("py-jax")
depends_on("py-jraph")
depends_on("py-matplotlib")
depends_on("py-numpy")
depends_on("py-pandas")
depends_on("py-rtree")
depends_on("py-scipy")
depends_on("py-tree")
depends_on("py-trimesh")
depends_on("py-typing-extensions")
depends_on("py-xarray")

View file

@ -16,8 +16,12 @@ class PyH5netcdf(PythonPackage):
license("BSD-3-Clause")
version("1.3.0", sha256="a171c027daeb34b24c24a3b6304195b8eabbb6f10c748256ed3cfe19806383cf")
version("0.10.0", sha256="fc1cfec33bb9f730c412f87fcbc259167fd7620635679ccfc6e31971730dbd60")
depends_on("python@3.6:", type=("build", "run"))
depends_on("python@3.9:", when="@1.3:", type=("build", "run"))
depends_on("py-setuptools@42:", when="@1.3:", type="build")
depends_on("py-setuptools", type="build")
depends_on("py-setuptools-scm@7:+toml", when="@1.3:", type="build")
depends_on("py-h5py", type=("build", "run"))
depends_on("py-packaging", when="@1.3:", type=("build", "run"))

View file

@ -15,6 +15,7 @@ class PyImportlibMetadata(PythonPackage):
license("Apache-2.0")
version("7.0.1", sha256="f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc")
version("6.6.0", sha256="92501cdf9cc66ebd3e612f1b4f0c0765dfa42f0fa38ffb319b6bd84dd675d705")
version("5.1.0", sha256="d5059f9f1e8e41f80e9c56c2ee58811450c31984dfa625329ffd7c0dad88a73b")
version("4.12.0", sha256="637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670")

View file

@ -23,7 +23,9 @@ class PyJax(PythonPackage):
license("Apache-2.0")
version("0.4.25", sha256="a8ee189c782de2b7b2ffb64a8916da380b882a617e2769aa429b71d79747b982")
version("0.4.23", sha256="2a229a5a758d1b803891b2eaed329723f6b15b4258b14dc0ccb1498c84963685")
version("0.4.16", sha256="e2ca82c9bf973c2c1c01f5340a583692b31f277aa3abd0544229c1fe5fa44b02")
version("0.4.3", sha256="d43f08f940aa30eb339965cfb3d6bee2296537b0dc2f0c65ccae3009279529ae")
version(
"0.3.23",
@ -53,7 +55,13 @@ class PyJax(PythonPackage):
depends_on("py-scipy@1.2.1:", type=("build", "run"))
depends_on("py-importlib-metadata@4.6:", when="@0.4.11: ^python@:3.9", type=("build", "run"))
# See jax/_src/lib/__init__.py
# https://github.com/google/jax/commit/8be057de1f50756fe7522f7e98b2f30fad56f7e4
for v in ["0.4.25", "0.4.23", "0.4.16", "0.4.3", "0.3.23"]:
depends_on(f"py-jaxlib@:{v}", when=f"@{v}", type=("build", "run"))
# See _minimum_jaxlib_version in jax/version.py
depends_on("py-jaxlib@0.4.20:", when="@0.4.25:", type=("build", "run"))
depends_on("py-jaxlib@0.4.19:", when="@0.4.21:", type=("build", "run"))
depends_on("py-jaxlib@0.4.14:", when="@0.4.15:", type=("build", "run"))
depends_on("py-jaxlib@0.4.11:", when="@0.4.12:", type=("build", "run"))

View file

@ -21,6 +21,7 @@ class PyJaxlib(PythonPackage, CudaPackage):
version("0.4.25", sha256="fc1197c401924942eb14185a61688d0c476e3e81ff71f9dc95e620b57c06eec8")
version("0.4.24", sha256="c4e6963c2c36f634a9a1765e476a1ed4e6c4a7954465ebf72e29f344c28ddc28")
version("0.4.16", sha256="85c8bc050abe0a2cf62e8cfc7edb4904dd3807924b5714ec6277f291c576b5ca")
version("0.4.3", sha256="2104735dc22be2b105e5517bd5bc6ae97f40e8e9e54928cac1585c6112a3d910")
version(
"0.3.22",
@ -81,7 +82,7 @@ class PyJaxlib(PythonPackage, CudaPackage):
)
# https://github.com/google/jax/issues/19992
conflicts("@0.4.24:", when="target=ppc64le:")
conflicts("@0.4.16:", when="target=ppc64le:")
def patch(self):
self.tmp_path = tempfile.mkdtemp(prefix="spack")

View file

@ -0,0 +1,24 @@
# Copyright 2013-2024 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 PyJraph(PythonPackage):
"""Jraph: A library for Graph Neural Networks in Jax."""
homepage = "https://github.com/deepmind/jraph"
pypi = "jraph/jraph-0.0.6.dev0.tar.gz"
license("Apache-2.0")
version(
"0.0.6.dev0", sha256="c3ac3a0b224b344eb6d367e8bc312d95ea41bf825d01ea31b80dd8c22c0dd8b8"
)
depends_on("py-setuptools", type="build")
depends_on("py-jax@0.1.55:", type=("build", "run"))
depends_on("py-jaxlib@0.1.37:", type=("build", "run"))
depends_on("py-numpy@1.18:", type=("build", "run"))

View file

@ -0,0 +1,25 @@
# Copyright 2013-2024 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 PyMultiurl(PythonPackage):
"""A package to download several URL as one, as well as supporting multi-part URLs."""
homepage = "https://github.com/ecmwf/multiurl"
pypi = "multiurl/multiurl-0.2.3.2.tar.gz"
license("Apache-2.0")
version("0.2.3.2", sha256="b625892ef3a5b8d4bd323f1dcd4750b6ea7e4e2e2e4574b6e88cdf92e10579e9")
depends_on("py-setuptools", type="build")
with default_args(type=("build", "run")):
depends_on("py-requests")
depends_on("py-tqdm")
depends_on("py-pytz")
depends_on("py-python-dateutil")

View file

@ -16,6 +16,7 @@ class PyNetcdf4(PythonPackage):
license("MIT")
version("1.6.5", sha256="824881d0aacfde5bd982d6adedd8574259c85553781e7b83e0ce82b890bfa0ef")
version("1.6.2", sha256="0382b02ff6a288419f6ffec85dec40f451f41b8755547154c575ddd9f0f4ae53")
version("1.5.8", sha256="ca3d468f4812c0999df86e3f428851fb0c17ac34ce0827115c246b0b690e4e84")
version("1.5.3", sha256="2a3ca855848f4bbf07fac366da77a681fcead18c0a8813d91d46302f562dc3be")
@ -23,22 +24,20 @@ class PyNetcdf4(PythonPackage):
variant("mpi", default=True, description="Parallel IO support")
depends_on("python@2.6:2.7,3.3:", when="@1.2.8:1.5.1", type=("build", "link", "run"))
depends_on("python@2.7,3.5:", when="@1.5.2:1.5.3", type=("build", "link", "run"))
depends_on("python@3.6:", when="@1.5.4:", type=("build", "link", "run"))
depends_on("py-setuptools@18:", when="@1.4.2:1.5.8", type="build")
depends_on("py-setuptools@41.2:", when="@1.6.2:", type="build")
depends_on("python", type=("build", "link", "run"))
depends_on("py-cython@0.29:", when="@1.6.5:", type="build")
depends_on("py-cython@0.19:", type="build")
depends_on("py-numpy@1.7:", type=("build", "link", "run"))
depends_on("py-numpy@1.9:", when="@1.5.4:", type=("build", "link", "run"))
depends_on("py-setuptools@61:", when="@1.6.5:", type="build")
depends_on("py-setuptools@41.2:", when="@1.6.2:", type="build")
depends_on("py-setuptools@18:", when="@1.4.2:1.5.8", type="build")
depends_on("py-cftime", type=("build", "run"))
depends_on("py-certifi", when="@1.6.5:", type=("build", "run"))
depends_on("py-numpy", when="@1.6.5:", type=("build", "link", "run"))
depends_on("py-numpy@1.9:", when="@1.5.4:1.6.2", type=("build", "link", "run"))
depends_on("py-numpy@1.7:", type=("build", "link", "run"))
depends_on("py-mpi4py", when="+mpi", type=("build", "run"))
depends_on("netcdf-c", when="-mpi")
depends_on("netcdf-c+mpi", when="+mpi")
depends_on("hdf5@1.8.0:+hl", when="-mpi")
depends_on("hdf5@1.8.0:+hl+mpi", when="+mpi")

View file

@ -16,6 +16,8 @@ class PyNvidiaDali(PythonPackage):
homepage = "https://developer.nvidia.com/dali"
url = "https://developer.download.nvidia.com/compute/redist/"
skip_version_audit = ["platform=darwin"]
maintainers("thomas-bouvier")
system = platform.system().lower()

View file

@ -0,0 +1,38 @@
# Copyright 2013-2024 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 PyNvidiaModulus(PythonPackage):
"""A deep learning framework for AI-driven multi-physics systems."""
homepage = "https://github.com/NVIDIA/modulus"
url = "https://github.com/NVIDIA/modulus/archive/refs/tags/v0.5.0.tar.gz"
license("Apache-2.0")
version("0.5.0", sha256="ff2c7d47227b8cba59b075cac89599f8c1ec7cde60fd2db6e6874d0143828832")
with default_args(type="build"):
depends_on("py-setuptools")
depends_on("py-setuptools-scm")
with default_args(type=("build", "run")):
depends_on("py-torch@2.0.0:")
# Remove upper bound on numpy version
# https://github.com/NVIDIA/modulus/issues/383
depends_on("py-numpy@1.22.4:")
depends_on("py-xarray@2023.1.0:")
depends_on("py-zarr@2.14.2:")
depends_on("py-fsspec@2023.1.0:")
depends_on("py-s3fs@2023.5.0:")
depends_on("py-nvidia-dali@1.16.0:")
depends_on("py-setuptools@67.6.0:")
depends_on("py-certifi@2023.7.22:")
depends_on("py-pytz@2023.3:")
depends_on("py-treelib@1.2.5:")
depends_on("py-tqdm@4.60.0:")
depends_on("py-nvtx@0.2.8:")

View file

@ -0,0 +1,21 @@
# Copyright 2013-2024 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 PyNvtx(PythonPackage):
"""PyNVTX - Python code annotation library."""
homepage = "https://github.com/NVIDIA/nvtx"
pypi = "nvtx/nvtx-0.2.10.tar.gz"
license("Apache-2.0")
version("0.2.10", sha256="58b89cd69079fda1ceef8441eec5c5c189d6a1ff94c090a3afe03aedd0bbd140")
depends_on("py-setuptools", type="build")
depends_on("py-cython", type="build")
depends_on("nvtx")

View file

@ -21,6 +21,7 @@ class PyOnnx(PythonPackage):
license("Apache-2.0")
version("1.15.0", sha256="b18461a7d38f286618ca2a6e78062a2a9c634ce498e631e708a8041b00094825")
version("1.13.1", sha256="0bdcc25c2c1ce4a8750e4ffbd93ae945442e7fac6e51176f38e366b74a97dfd9")
version("1.13.0", sha256="410b39950367857f97b65093681fe2495a2e23d63777a8aceaf96c56a16d166e")
version("1.12.0", sha256="13b3e77d27523b9dbf4f30dfc9c959455859d5e34e921c44f712d69b8369eff9")
@ -30,30 +31,31 @@ class PyOnnx(PythonPackage):
version("1.6.0", sha256="3b88c3fe521151651a0403c4d131cb2e0311bd28b753ef692020a432a81ce345")
version("1.5.0", sha256="1a584a4ef62a6db178c257fffb06a9d8e61b41c0a80bfd8bcd8a253d72c4b0b4")
# CMakeLists.txt
depends_on("cmake@3.1:", type="build")
# requirements.txt
depends_on("py-setuptools@61:", type="build")
depends_on("py-setuptools", type="build")
depends_on("protobuf")
depends_on("py-protobuf+cpp", type=("build", "run"))
depends_on("py-protobuf@3.20.2:", type=("build", "run"), when="@1.15:")
depends_on("py-protobuf@3.20.2:3", type=("build", "run"), when="@1.13")
depends_on("py-protobuf@3.12.2:3.20.1", type=("build", "run"), when="@1.12")
depends_on("py-protobuf@3.12.2:", type=("build", "run"), when="@1.11")
# https://github.com/protocolbuffers/protobuf/issues/10051
# https://github.com/onnx/onnx/issues/4222
depends_on("py-protobuf@:3", type=("build", "run"), when="@1.10")
# Protobuf version limit is due to removal of SetTotalBytesLimit in
# https://github.com/protocolbuffers/protobuf/pull/8794, fixed in
# https://github.com/onnx/onnx/pull/3112
depends_on("protobuf@:3.17", when="@:1.8")
depends_on("py-protobuf@:3.17", when="@:1.8", type=("build", "run"))
# https://github.com/protocolbuffers/protobuf/issues/10051
# https://github.com/onnx/onnx/issues/4222
depends_on("protobuf@:3", when="@1.10.1")
depends_on("py-protobuf@:3", type=("build", "run"), when="@1.10.1")
depends_on("protobuf@3.12.2:", when="@1.11.0")
depends_on("py-protobuf@3.12.2:", type=("build", "run"), when="@1.11.0")
depends_on("protobuf@3.12.2:3.20.1", when="@1.12.0")
depends_on("py-protobuf@3.12.2:3.20.1", type=("build", "run"), when="@1.12.0")
depends_on("protobuf@3.20.2:3", when="@1.13.0:")
depends_on("py-protobuf@3.20.2:3", type=("build", "run"), when="@1.13.0:")
depends_on("py-protobuf@:3.17", type=("build", "run"), when="@:1.8")
depends_on("py-protobuf+cpp", type=("build", "run"))
depends_on("py-numpy", type=("build", "run"))
depends_on("py-numpy@1.16.6:", type=("build", "run"), when="@1.8.1:")
depends_on("py-numpy@1.16.6:", type=("build", "run"), when="@1.8.1:1.13")
# Historical dependencies
depends_on("py-six", type=("build", "run"), when="@:1.8.1")
depends_on("py-typing-extensions@3.6.2.1:", type=("build", "run"))
depends_on("cmake@3.1:", type="build")
depends_on("py-pytest-runner", type="build")
depends_on("py-typing-extensions@3.6.2.1:", type=("build", "run"), when="@:1.13")
depends_on("py-pytest-runner", type="build", when="@:1.13")
# 'python_out' does not recognize dllexport_decl.
patch("remove_dllexport_decl.patch", when="@:1.6.0")

View file

@ -18,42 +18,50 @@ class PyOnnxruntime(CMakePackage, PythonExtension):
homepage = "https://github.com/microsoft/onnxruntime"
git = "https://github.com/microsoft/onnxruntime.git"
submodules = True
license("MIT")
version(
"1.10.0", tag="v1.10.0", commit="0d9030e79888d1d5828730b254fedc53c7b640c1", submodules=True
)
version(
"1.7.2", tag="v1.7.2", commit="5bc92dff16b0ddd5063b717fb8522ca2ad023cb0", submodules=True
)
version("1.17.1", tag="v1.17.1", commit="8f5c79cb63f09ef1302e85081093a3fe4da1bc7d")
version("1.10.0", tag="v1.10.0", commit="0d9030e79888d1d5828730b254fedc53c7b640c1")
version("1.7.2", tag="v1.7.2", commit="5bc92dff16b0ddd5063b717fb8522ca2ad023cb0")
variant("cuda", default=False, description="Build with CUDA support")
# cmake/CMakeLists.txt
depends_on("cmake@3.26:", when="@1.17:", type="build")
depends_on("cmake@3.1:", type="build")
# Needs absl/strings/has_absl_stringify.h
# cxxstd=20 may also work, but cxxstd=14 does not
depends_on("abseil-cpp@20240116.0: cxxstd=17", when="@1.17:")
extends("python")
depends_on("python", type=("build", "run"))
depends_on("py-pip", type="build")
depends_on("py-wheel", type="build")
depends_on("py-setuptools", type="build")
depends_on("py-pybind11", type="build")
# requirements.txt
depends_on("py-coloredlogs", when="@1.17:", type=("build", "run"))
depends_on("py-flatbuffers", type=("build", "run"))
depends_on("py-numpy@1.16.6:", type=("build", "run"))
depends_on("py-packaging", type=("build", "run"))
depends_on("py-protobuf", type=("build", "run"))
depends_on("py-sympy@1.1:", type=("build", "run"))
depends_on("protobuf")
# https://github.com/microsoft/onnxruntime/pull/11639
depends_on("protobuf@:3.19", when="@:1.11")
depends_on("py-protobuf", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-numpy@1.16.6:", type=("build", "run"))
depends_on("py-sympy@1.1:", type=("build", "run"))
depends_on("py-packaging", type=("build", "run"))
depends_on("py-cerberus", type=("build", "run"))
depends_on("py-wheel", type="build")
depends_on("py-onnx", type=("build", "run"))
depends_on("py-flatbuffers", type=("build", "run"))
depends_on("zlib-api")
depends_on("libpng")
depends_on("py-pybind11", type="build")
depends_on("cuda", when="+cuda")
depends_on("cudnn", when="+cuda")
depends_on("iconv", type=("build", "link", "run"))
depends_on("re2+shared")
extends("python")
# Adopted from CMS experiment's fork of onnxruntime
# https://github.com/cms-externals/onnxruntime/compare/5bc92df...d594f80
patch("cms.patch", level=1, when="@1.7.2")
@ -105,33 +113,22 @@ def cmake_args(self):
define("onnxruntime_BUILD_SHARED_LIB", True),
define_from_variant("onnxruntime_USE_CUDA", "cuda"),
define("onnxruntime_BUILD_CSHARP", False),
define("onnxruntime_USE_EIGEN_FOR_BLAS", True),
define("onnxruntime_USE_OPENBLAS", False),
define("onnxruntime_USE_MKLML", False),
define("onnxruntime_USE_NGRAPH", False),
define("onnxruntime_USE_OPENMP", False),
define("onnxruntime_USE_TVM", False),
define("onnxruntime_USE_LLVM", False),
define("onnxruntime_ENABLE_MICROSOFT_INTERNAL", False),
define("onnxruntime_USE_BRAINSLICE", False),
define("onnxruntime_USE_NUPHAR", False),
define("onnxruntime_USE_TENSORRT", False),
define("onnxruntime_CROSS_COMPILING", False),
define("onnxruntime_USE_FULL_PROTOBUF", True),
define("onnxruntime_DISABLE_CONTRIB_OPS", False),
define("onnxruntime_USE_PREINSTALLED_PROTOBUF", True),
define("onnxruntime_PREFER_SYSTEM_LIB", True),
]
if self.spec.satisfies("+cuda"):
args.extend(
(
define("onnxruntime_CUDA_VERSION", str(self.spec["cuda"].version)),
define("onnxruntime_CUDA_HOME", self.spec["cuda"].prefix),
define("onnxruntime_CUDNN_HOME", self.spec["cudnn"].prefix),
define("CMAKE_CUDA_FLAGS", "-cudart shared"),
define("CMAKE_CUDA_RUNTIME_LIBRARY", "Shared"),
define("DCMAKE_TRY_COMPILE_PLATFORM_VARIABLES", "CMAKE_CUDA_RUNTIME_LIBRARY"),
define("CMAKE_TRY_COMPILE_PLATFORM_VARIABLES", "CMAKE_CUDA_RUNTIME_LIBRARY"),
)
)

View file

@ -0,0 +1,37 @@
# Copyright 2013-2024 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 PyOrbaxCheckpoint(PythonPackage):
"""Orbax includes a checkpointing library oriented towards JAX users, supporting a variety
of different features required by different frameworks, including asynchronous checkpointing
various types, and various storage formats. We aim to provide a highly customizable and
composable API which maximizes flexibility for diverse use cases.
"""
homepage = "http://github.com/google/orbax"
pypi = "orbax_checkpoint/orbax_checkpoint-0.5.3.tar.gz"
license("Apache-2.0")
version("0.5.3", sha256="1572904cbbfe8513927e0d80f80b730e0ef2f680332d3c2810d8443532938b45")
depends_on("py-flit-core@3.5:3", type="build")
with default_args(type=("build", "run")):
depends_on("python@3.9:")
depends_on("py-absl-py")
depends_on("py-etils+epath+epy")
depends_on("py-typing-extensions")
depends_on("py-msgpack")
depends_on("py-jax@0.4.9:")
depends_on("py-jaxlib")
depends_on("py-numpy")
depends_on("py-pyyaml")
depends_on("py-tensorstore@0.1.51:")
depends_on("py-nest-asyncio")
depends_on("py-protobuf")

View file

@ -0,0 +1,21 @@
# Copyright 2013-2024 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 PyProperscoring(PythonPackage):
"""Proper scoring rules in Python."""
homepage = "https://github.com/properscoring/properscoring"
pypi = "properscoring/properscoring-0.1.tar.gz"
license("Apache-2.0")
version("0.1", sha256="b0cc4963cc218b728d6c5f77b3259c8f835ae00e32e82678cdf6936049b93961")
depends_on("py-setuptools", type="build")
depends_on("py-numpy", type=("build", "run"))
depends_on("py-scipy", type=("build", "run"))

View file

@ -15,6 +15,7 @@ class PyPytestAsyncio(PythonPackage):
license("Apache-2.0")
version("0.23.5", sha256="3a048872a9c4ba14c3e90cc1aa20cbc2def7d01c7c8db3777ec281ba9c057675")
version("0.18.3", sha256="7659bdb0a9eb9c6e3ef992eef11a2b3e69697800ad02fb06374a210d85b29f91")
version("0.9.0", sha256="fbd92c067c16111174a1286bfb253660f1e564e5146b39eeed1133315cf2c2cf")
@ -24,6 +25,6 @@ class PyPytestAsyncio(PythonPackage):
depends_on("py-setuptools", type="build", when="@0.9.0:")
depends_on("py-wheel@0.36:", type="build", when="@0.18.3:")
depends_on("py-setuptools-scm@6.2:+toml", type="build", when="@0.18.3:")
depends_on("py-pytest@6.1.0:", type=("build", "run"), when="@0.18.3:")
depends_on("py-pytest@3.0.6:", type=("build", "run"), when="@0.9.0:")
depends_on("py-typing-extensions@3.7.2:", type=("build", "run"), when="@0.18.3:^python@:3.7")
depends_on("py-pytest@7:8", type=("build", "run"), when="@0.23:")
depends_on("py-pytest@6.1.0:", type=("build", "run"), when="@0.18.3")
depends_on("py-pytest@3.0.6:", type=("build", "run"), when="@0.9.0")

View file

@ -0,0 +1,20 @@
# Copyright 2013-2024 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 PyPytestRegtest(PythonPackage):
"""pytest plugin for snapshot regression testing."""
homepage = "https://gitlab.com/uweschmitt/pytest-regtest"
pypi = "pytest_regtest/pytest_regtest-2.1.1.tar.gz"
license("MIT")
version("2.1.1", sha256="bd08a6161832378b59ecd4f5815fbe26af7cd091db4a1e710e30476d5f3b8832")
depends_on("py-hatchling", type="build")
depends_on("py-pytest@7.3:", type=("build", "run"))

View file

@ -16,8 +16,9 @@ class PyPytestTimeout(PythonPackage):
license("MIT")
version("2.2.0", sha256="3b0b95dabf3cb50bac9ef5ca912fa0cfc286526af17afc806824df20c2f72c90")
version("1.4.2", sha256="20b3113cf6e4e80ce2d403b6fb56e9e1b871b510259206d40ff8d609f48bda76")
depends_on("python@2.7:2.8,3.5:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-pytest@5:", when="@2:", type=("build", "run"))
depends_on("py-pytest@3.6.0:", type=("build", "run"))

View file

@ -16,11 +16,10 @@ class PyPythonDotenv(PythonPackage):
license("BSD-3-Clause")
version("1.0.1", sha256="e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca")
version("0.19.2", sha256="a5de49a31e953b45ff2d2fd434bbc2670e8db5273606c1e737cc6b93eff3655f")
variant("cli", default=False, description="Add commandline tools")
depends_on("python@3.5:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-click@5:", when="+cli", type=("build", "run"))

View file

@ -15,12 +15,15 @@ class PyS3fs(PythonPackage):
license("BSD-3-Clause")
version("2024.2.0", sha256="f8064f522ad088b56b043047c825734847c0269df19f2613c956d4c20de15b62")
version("2022.11.0", sha256="10c5ac283a4f5b67ffad6d1f25ff7ee026142750c5c5dc868746cd904f617c33")
version("0.5.2", sha256="87e5210415db17b9de18c77bcfc4a301570cc9030ee112b77dc47ab82426bae1")
depends_on("py-setuptools", type="build")
depends_on("py-aiobotocore@2.4", when="@2022:", type=("build", "run"))
depends_on("py-aiobotocore@2.5.4:2", when="@2024:", type=("build", "run"))
depends_on("py-aiobotocore@2.4", when="@2022", type=("build", "run"))
depends_on("py-aiobotocore@1.0.1:", when="@:0", type=("build", "run"))
depends_on("py-fsspec@2024.2.0", when="@2024.2.0", type=("build", "run"))
depends_on("py-fsspec@2022.11.0", when="@2022.11.0", type=("build", "run"))
depends_on("py-fsspec@0.8.0:", when="@0", type=("build", "run"))
depends_on("py-aiohttp", when="@2022:", type=("build", "run"))

View file

@ -0,0 +1,33 @@
# Copyright 2013-2024 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 PyTensorstore(PythonPackage):
"""Read and write large, multi-dimensional arrays."""
homepage = "https://github.com/google/tensorstore"
pypi = "tensorstore/tensorstore-0.1.54.tar.gz"
license("Apache-2.0")
version("0.1.54", sha256="e1a9dcb0be7c828f752375409537d4b39c658dd6c6a0873fe21a24a556ec0e2a")
# .bazelversion
depends_on("bazel@6.4.0", type="build")
with default_args(type="build"):
depends_on("py-setuptools@30.3:")
depends_on("py-setuptools-scm")
with default_args(type=("build", "run")):
depends_on("python@3.9:")
depends_on("py-numpy@1.16:")
depends_on("py-ml-dtypes@0.3.1:")
def patch(self):
# Trick bazelisk into using the Spack-installed copy of bazel
symlink(bazel.path, join_path("tools", "bazel"))

View file

@ -0,0 +1,24 @@
# Copyright 2013-2024 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 PyTorchHarmonics(PythonPackage):
"""A differentiable spherical harmonic transform for PyTorch."""
homepage = "https://github.com/NVIDIA/torch-harmonics"
pypi = "torch_harmonics/torch_harmonics-0.6.5.tar.gz"
maintainers("adamjstewart")
license("BSD")
version("0.6.5", sha256="e467d04bc58eb2dc800eb21870025407d38ebcbf8df4de479bd5b4915daf987e")
depends_on("py-setuptools", type="build")
depends_on("py-torch", type=("build", "run"))
depends_on("py-numpy", type=("build", "run"))
depends_on("py-triton", type=("build", "run"))

View file

@ -0,0 +1,22 @@
# Copyright 2013-2024 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 PyTree(PythonPackage):
"""A package for creating and drawing trees."""
homepage = "https://github.com/PixelwarStudio/PyTree"
pypi = "Tree/Tree-0.2.4.tar.gz"
license("MIT")
version("0.2.4", sha256="f84d8ec9bf50dd69f551da78925a23d110864e7706551f590cdade27646f7883")
depends_on("pil", type=("build", "run"))
depends_on("py-svgwrite", type=("build", "run"))
depends_on("py-setuptools", type=("build", "run"))
depends_on("py-click", type=("build", "run"))

View file

@ -0,0 +1,20 @@
# Copyright 2013-2024 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 PyTreelib(PythonPackage):
"""A Python implementation of tree structure."""
homepage = "https://github.com/caesar0301/treelib"
pypi = "treelib/treelib-1.7.0.tar.gz"
license("Apache-2.0")
version("1.7.0", sha256="9bff1af416b9e642a6cd0e0431d15edf26a24b8d0c8ae68afbd3801b5e30fb61")
depends_on("py-setuptools", type="build")
depends_on("py-six", type=("build", "run"))

View file

@ -0,0 +1,23 @@
# Copyright 2013-2024 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 PyTriton(PythonPackage):
"""A language and compiler for custom Deep Learning operations."""
homepage = "https://github.com/openai/triton"
url = "https://github.com/openai/triton/archive/refs/tags/v2.1.0.tar.gz"
license("MIT")
version("2.1.0", sha256="4338ca0e80a059aec2671f02bfc9320119b051f378449cf5f56a1273597a3d99")
depends_on("py-setuptools@40.8:", type="build")
depends_on("cmake@3.18:", type="build")
depends_on("py-filelock", type=("build", "run"))
build_directory = "python"

View file

@ -0,0 +1,22 @@
# Copyright 2013-2024 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 PyXhistogram(PythonPackage):
"""Fast, flexible, label-aware histograms for numpy and xarray."""
homepage = "https://github.com/xgcm/xhistogram"
pypi = "xhistogram/xhistogram-0.3.2.tar.gz"
license("MIT")
version("0.3.2", sha256="56b0751e1469eaed81710f644c8ba5c574b51883baa2feee26a95f2f708f91a1")
depends_on("py-setuptools", type="build")
depends_on("py-xarray@0.12:", type=("build", "run"))
depends_on("py-dask@2.3:+array", type=("build", "run"))
depends_on("py-numpy@1.17:", type=("build", "run"))

View file

@ -0,0 +1,35 @@
# Copyright 2013-2024 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 PyXskillscore(PythonPackage):
"""Metrics for verifying forecasts."""
homepage = "https://github.com/xarray-contrib/xskillscore"
pypi = "xskillscore/xskillscore-0.0.24.tar.gz"
license("Apache-2.0")
version("0.0.24", sha256="ce3306c60626eafea722a1522016e272ca516ce6f2447c75f92c52888939f8c2")
with default_args(type="build"):
depends_on("py-setuptools-scm")
depends_on("py-setuptools@30.3:")
depends_on("py-setuptools-scm-git-archive")
with default_args(type=("build", "run")):
depends_on("py-bottleneck")
depends_on("py-cftime")
depends_on("py-dask")
depends_on("py-numba@0.52:")
depends_on("py-numpy")
depends_on("py-properscoring")
depends_on("py-scikit-learn")
depends_on("py-scipy")
depends_on("py-toolz")
depends_on("py-xarray@0.16.1:")
depends_on("py-xhistogram@0.3.0:")

View file

@ -15,21 +15,26 @@ class PyZarr(PythonPackage):
license("MIT")
version("2.17.0", sha256="6390a2b8af31babaab4c963efc45bf1da7f9500c9aafac193f84cf019a7c66b0")
version("2.10.2", sha256="5c6ae914ab9215631bb95c09e76b9b9b4fffa70fec0c7bca26b68387d858ebe2")
version("2.6.1", sha256="fa7eac1e4ff47ff82d09c42bb4679e18e8a05a73ee81ce59cee6a441a210b2fd")
version("2.5.0", sha256="d54f060739208392494c3dbcbfdf41c8df9fa23d9a32b91aea0549b4c5e2b77f")
version("2.4.0", sha256="53aa21b989a47ddc5e916eaff6115b824c0864444b1c6f3aaf4f6cf9a51ed608")
version("2.3.2", sha256="c62d0158fb287151c978904935a177b3d2d318dea3057cfbeac8541915dfa105")
depends_on("python@3.5:", type=("build", "run"), when="@2.4.0:")
depends_on("python@3.6:", type=("build", "run"), when="@2.6.0:")
depends_on("python@3.7:3", type=("build", "run"), when="@2.10:")
depends_on("py-asciitree", type=("build", "run"))
depends_on("py-fasteners", type=("build", "run"))
depends_on("py-msgpack", type=("build", "run"), when="@:2.3.2")
depends_on("py-setuptools@18.0:", type="build")
depends_on("python@3.9:", type=("build", "run"), when="@2.17:")
depends_on("python@3.7:3", type=("build", "run"), when="@2.10")
depends_on("py-setuptools@64:", type="build", when="@2.17:")
depends_on("py-setuptools@38.6.0:", type="build", when="@2.4.0:")
depends_on("py-setuptools@18.0:", type="build")
depends_on("py-setuptools-scm@1.5.5:", type="build")
depends_on("py-numcodecs@0.6.2:", type=("build", "run"))
depends_on("py-numcodecs@0.6.4:", type=("build", "run"), when="@2.4.0:")
depends_on("py-asciitree", type=("build", "run"))
depends_on("py-numpy@1.21.1:", type=("build", "run"), when="@2.17:")
depends_on("py-numpy@1.7:", type=("build", "run"))
depends_on("py-fasteners", type=("build", "run"))
depends_on("py-numcodecs@0.10:", type=("build", "run"), when="@2.17:")
depends_on("py-numcodecs@0.6.4:", type=("build", "run"), when="@2.4.0:")
depends_on("py-numcodecs@0.6.2:", type=("build", "run"))
# Historical dependencies
depends_on("py-msgpack", type=("build", "run"), when="@:2.3.2")