Add PythonPackage base class

- Add a PythonPackage class with build system support.
  - Support build phases in PythonPackage
  - Add a custom sanity check for PythonPackages
  - Get rid of nolink dependencies in python packages

- Update spack create to use new PythonPackage class

- Port most of Python packages to new PythonPackage class

- Conducted a massive install and activate of Python packages.
  - Fixed bugs introduced by install and activate.

- Update API docs on PythonPackage
This commit is contained in:
Adam J. Stewart
2017-01-16 18:13:37 -08:00
committed by Todd Gamblin
parent 1f49493fee
commit c0aaa8fcea
169 changed files with 849 additions and 1011 deletions

View File

@@ -25,7 +25,7 @@
from spack import *
class PyPytables(Package):
class PyPytables(PythonPackage):
"""PyTables is a package for managing hierarchical datasets and designed to
efficiently and easily cope with extremely large amounts of data."""
homepage = "http://www.pytables.org/"
@@ -35,13 +35,12 @@ class PyPytables(Package):
url='https://github.com/PyTables/PyTables/archive/v3.3.0.tar.gz')
version('3.2.2', '7cbb0972e4d6580f629996a5bed92441')
extends('python')
depends_on('hdf5')
depends_on('py-numpy', type=('build', 'run'))
depends_on('py-numexpr', type=('build', 'run'))
depends_on('hdf5@1.8.0:1.8.999')
depends_on('py-numpy@1.8.0:', type=('build', 'run'))
depends_on('py-numexpr@2.5.2:', type=('build', 'run'))
depends_on('py-cython', type=('build', 'run'))
depends_on('py-six', type=('build', 'run'))
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
env["HDF5_DIR"] = spec['hdf5'].prefix
setup_py('install', '--prefix=%s' % prefix)
def setup_environment(self, spack_env, run_env):
spack_env.set('HDF5_DIR', self.spec['hdf5'].prefix)