diff options
author | Stephen Sachs <stephenmsachs@gmail.com> | 2022-07-13 22:12:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-13 13:12:28 -0700 |
commit | d25315c2f6e2be4aeda121dfbafc9ad943fb7a0c (patch) | |
tree | d1b825daba66867602daeca7006a50bf7ab220bf /var/spack/repos/builtin/packages/py-devito/package.py | |
parent | 8e00aa7c79253103329f33cb230524f28e1f7344 (diff) | |
download | spack-d25315c2f6e2be4aeda121dfbafc9ad943fb7a0c.tar.gz spack-d25315c2f6e2be4aeda121dfbafc9ad943fb7a0c.tar.bz2 spack-d25315c2f6e2be4aeda121dfbafc9ad943fb7a0c.tar.xz spack-d25315c2f6e2be4aeda121dfbafc9ad943fb7a0c.zip |
Add package py-devito and it's dependencies (#31495)
* [py-devito] Add package
Also add dependencies:
- py-nbval
- py-cgen
- py-codepy
- py-contexttimer
- py-pyrevolve
* [py-devito] Fix some typos
* [py-devito] Fix: include examples directory
Upstream issue: https://github.com/devitocodes/devito/issues/1954
* [py-devito] clean up
* [py-devito] clean up dependency packages
* [py-devito] flake8: line too long
* Address @adamjstewart comments
* Make flake8 happy
Co-authored-by: Stephen Sachs <stesachs@amazon.com>
Diffstat (limited to 'var/spack/repos/builtin/packages/py-devito/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/py-devito/package.py | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/py-devito/package.py b/var/spack/repos/builtin/packages/py-devito/package.py new file mode 100644 index 0000000000..13f1050d59 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-devito/package.py @@ -0,0 +1,71 @@ +# 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 PyDevito(PythonPackage): + """Devito is a Python package to implement optimized stencil computation. + + (e.g., finite differences, image processing, machine learning) from high-level + symbolic problem definitions. Devito builds on SymPy and employs automated code + generation and just-in-time compilation to execute optimized computational kernels + on several computer platforms, including CPUs, GPUs, and clusters thereof. + """ + + homepage = "https://www.devitoproject.org/" + pypi = "devito/devito-4.6.2.tar.gz" + + version('4.6.2', sha256='39c2210a192ad69953b4f8d93440ffd72b07d739c4fe2290e2b182adfb7e143f') + + variant('mpi', default=False, description='Enable MPI support') + variant('matplotlib', default=False, description='Enable matplolib support') + variant('ipyparallel', default=False, description='Enable ipyparallel support') + variant('pandas', default=False, description='Enable pandas support') + + depends_on('py-pip@9.0.1:', type='build') + depends_on('py-setuptools', type='build') + + depends_on('py-numpy@1.16:', type=('build', 'run')) + depends_on('py-sympy@1.7:1.9', type=('build', 'run')) + depends_on('py-scipy', type=('build', 'run')) + depends_on('py-flake8@2.1.0:', type=('build', 'run')) + depends_on('py-nbval', type=('build', 'run')) + depends_on('py-cached-property', type=('build', 'run')) + depends_on('py-psutil@5.1.0:5', type=('build', 'run')) + depends_on('py-py-cpuinfo@:8', type=('build', 'run')) + depends_on('py-cgen@2020.1:', type=('build', 'run')) + depends_on('py-codepy@2019.1:', type=('build', 'run')) + depends_on('py-click@:8', type=('build', 'run')) + depends_on('py-codecov', type=('build', 'run')) + depends_on('py-multidict', type=('build', 'run')) + depends_on('py-anytree@2.4.3:2.8', type=('build', 'run')) + depends_on('py-pyrevolve@2.1.3:', type=('build', 'run')) + depends_on('py-distributed@:2022.2', type=('build', 'run')) + depends_on('py-pytest@3.6:6', type=('build', 'run')) + depends_on('py-pytest-runner', type=('build', 'run')) + depends_on('py-pytest-cov', type=('build', 'run')) + + # requirements-mpi.tct + depends_on('py-mpi4py', type=('build', 'run'), when='+mpi') + + # requirements-optional.txt + depends_on('py-matplotlib', type=('build', 'run'), when='+matplotlib') + depends_on('py-ipyparallel', type=('build', 'run'), when='+ipyparallel') + depends_on('py-pandas', type=('build', 'run'), when='+pandas') + + depends_on('mpi', type=('build', 'run')) + + depends_on('intel-parallel-studio', type='run', when='%intel@:2021.1.1') + depends_on('intel-oneapi-compilers', type='run', when='%intel@2021.1.2:') + + @run_before('install') + def add_examples_dir(self): + # Add file `__init__py` to examples/ so it is picked up by setuptools + touch('examples/__init__.py') + + def setup_run_environment(self, env): + # Make benchmark.py available + env.prepend_path('DEVITO_HOME', self.prefix) |