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 PyIpython(Package):
class PyIpython(PythonPackage):
"""IPython provides a rich toolkit to help you make the most out of using
Python interactively."""
homepage = "https://pypi.python.org/pypi/ipython"
@@ -35,13 +35,15 @@ class PyIpython(Package):
version('3.1.0', 'a749d90c16068687b0ec45a27e72ef8f')
version('2.3.1', '2b7085525dac11190bfb45bb8ec8dcbf')
extends('python')
depends_on('py-pygments', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-backports-shutil-get-terminal-size', when="^python@:3.2.999")
depends_on('py-pathlib2', when="^python@:3.3.999")
depends_on('py-pickleshare')
depends_on('py-simplegeneric')
def install(self, spec, prefix):
setup_py('install', '--prefix=%s' % prefix)
# These dependencies breaks concretization
# See https://github.com/LLNL/spack/issues/2793
# depends_on('py-backports-shutil-get-terminal-size', when="^python@:3.2.999") # noqa
# depends_on('py-pathlib2', when="^python@:3.3.999")
depends_on('py-backports-shutil-get-terminal-size', type=('build', 'run'))
depends_on('py-pathlib2', type=('build', 'run'))
depends_on('py-pickleshare', type=('build', 'run'))
depends_on('py-simplegeneric', type=('build', 'run'))