From 808e9b46493495dff64d9964631faa929bbe4ebd Mon Sep 17 00:00:00 2001 From: Brian Van Essen Date: Mon, 10 Apr 2017 19:02:32 -0700 Subject: [PATCH] Added a package for the MDAnalysis toolkit. (#3576) * Added a package for the MDAnalysis toolkit. * Added the dependency on setuptools. * Added the rest of the dependencies to the py-mdanalysis package. Also added the griddataformats and seaborn packages to satisfy requirements. * Removed seaborn package since it has been recently added. * Fixed flake8 error * Removed inadvertent commits. * Cleaned up reviewers feedback. --- .../builtin/packages/elemental/package.py | 1 + .../repos/builtin/packages/lbann/package.py | 2 +- .../packages/py-griddataformats/package.py | 42 +++++++++++++ .../builtin/packages/py-mdanalysis/package.py | 59 +++++++++++++++++++ 4 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 var/spack/repos/builtin/packages/py-griddataformats/package.py create mode 100644 var/spack/repos/builtin/packages/py-mdanalysis/package.py diff --git a/var/spack/repos/builtin/packages/elemental/package.py b/var/spack/repos/builtin/packages/elemental/package.py index f1cc77c33c..24b5bf8d15 100644 --- a/var/spack/repos/builtin/packages/elemental/package.py +++ b/var/spack/repos/builtin/packages/elemental/package.py @@ -68,6 +68,7 @@ class Elemental(CMakePackage): # Hack to forward variant to openblas package # Allow Elemental to build internally when using 8-byte ints depends_on('openblas +openmp', when='+openmp_blas ~int64_blas') + # Note that this forces us to use OpenBLAS until #1712 is fixed depends_on('lapack', when='~openmp_blas') depends_on('metis') diff --git a/var/spack/repos/builtin/packages/lbann/package.py b/var/spack/repos/builtin/packages/lbann/package.py index f0355fb96d..38839c9bf0 100644 --- a/var/spack/repos/builtin/packages/lbann/package.py +++ b/var/spack/repos/builtin/packages/lbann/package.py @@ -46,7 +46,7 @@ class Lbann(CMakePackage): depends_on('cuda', when='+gpu') depends_on('mpi') depends_on('opencv@3.2.0', when='+opencv') - depends_on('protobuf@3.0.2') + depends_on('protobuf@3.0.2:') def build_type(self): if '+debug' in self.spec: diff --git a/var/spack/repos/builtin/packages/py-griddataformats/package.py b/var/spack/repos/builtin/packages/py-griddataformats/package.py new file mode 100644 index 0000000000..ee77959e96 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-griddataformats/package.py @@ -0,0 +1,42 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyGriddataformats(PythonPackage): + """The gridDataFormats package provides classes to unify reading + and writing n-dimensional datasets. One can read grid data from + files, make them available as a Grid object, and write out the + data again.""" + + homepage = "http://www.mdanalysis.org/GridDataFormats" + url = "https://pypi.io/packages/source/G/GridDataFormats/GridDataFormats-0.3.3.tar.gz" + + version('0.3.3', '5c83d3bdd421eebcee10111942c5a21f') + + depends_on('python@2.7:') + depends_on('py-setuptools', type='build') + depends_on('py-numpy@1.0.3:', type=('build', 'run')) + depends_on('py-six', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-mdanalysis/package.py b/var/spack/repos/builtin/packages/py-mdanalysis/package.py new file mode 100644 index 0000000000..9f96b04836 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-mdanalysis/package.py @@ -0,0 +1,59 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyMdanalysis(PythonPackage): + """MDAnalysis is a Python toolkit to analyze molecular dynamics + trajectories generated by a wide range of popular simulation + packages including DL_Poly, CHARMM, Amber, NAMD, LAMMPS, and + Gromacs. (See the lists of supported trajectory formats and + topology formats.)""" + + homepage = "http://www.mdanalysis.org" + url = "https://pypi.io/packages/source/M/MDAnalysis/MDAnalysis-0.15.0.tar.gz" + + version('0.15.0', '19e5a8e6c2bfe85f6209d1d7a36e4f20') + + variant('analysis', default=True, + description='Enable analysis packages: matplotlib, scipy, seaborn') + variant('amber', default=False, + description='Support AMBER netcdf format.') + + depends_on('python@2.7:') + depends_on('py-setuptools', type='build') + depends_on('py-cython@0.16:', type='build') + depends_on('py-numpy@1.5.0:', type=('build', 'run')) + depends_on('py-six@1.4.0:', type=('build', 'run')) + depends_on('py-biopython@1.59:', type=('build', 'run')) + depends_on('py-networkx@1.0:', type=('build', 'run')) + depends_on('py-griddataformats@0.3.2:', type=('build', 'run')) + + depends_on('py-matplotlib', when='+analysis', type=('build', 'run')) + depends_on('py-scipy', when='+analysis', type=('build', 'run')) + depends_on('py-seaborn', when='+analysis', type=('build', 'run')) + + depends_on('py-netcdf4@1.0:', when='+amber', type=('build', 'run')) + depends_on('hdf5', when='+amber', type=('run'))