From 826cd07cf7bef7d610103516943b0ef73ab459ad Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Wed, 16 Dec 2020 17:15:03 -0600 Subject: PythonPackage: add import module smoke tests (#20023) --- .../packages/aws-parallelcluster/package.py | 4 -- var/spack/repos/builtin/packages/gdal/package.py | 19 +++---- .../repos/builtin/packages/mercurial/package.py | 7 --- .../repos/builtin/packages/py-accimage/package.py | 4 +- .../builtin/packages/py-adb-enhanced/package.py | 1 - .../repos/builtin/packages/py-aenum/package.py | 2 - .../builtin/packages/py-aiohttp-cors/package.py | 19 +++++++ .../repos/builtin/packages/py-alabaster/package.py | 3 -- .../repos/builtin/packages/py-apipkg/package.py | 2 - .../repos/builtin/packages/py-appdirs/package.py | 10 +--- .../repos/builtin/packages/py-archspec/package.py | 2 - .../builtin/packages/py-argon2-cffi/package.py | 3 -- .../repos/builtin/packages/py-args/package.py | 1 - .../repos/builtin/packages/py-arrow/package.py | 3 -- .../repos/builtin/packages/py-asteval/package.py | 1 - .../repos/builtin/packages/py-astor/package.py | 2 - .../repos/builtin/packages/py-astropy/package.py | 4 +- .../builtin/packages/py-atomicwrites/package.py | 2 - .../repos/builtin/packages/py-attrs/package.py | 10 ---- .../builtin/packages/py-awesome-slugify/package.py | 1 - .../builtin/packages/py-azure-cli-core/package.py | 1 - .../packages/py-azure-cli-telemetry/package.py | 1 - .../repos/builtin/packages/py-azure-cli/package.py | 1 - .../repos/builtin/packages/py-babel/package.py | 4 -- .../packages/py-basis-set-exchange/package.py | 2 - .../repos/builtin/packages/py-black/package.py | 13 +++++ .../repos/builtin/packages/py-blis/package.py | 1 - .../repos/builtin/packages/py-blosc/package.py | 2 - .../repos/builtin/packages/py-boto3/package.py | 5 -- .../repos/builtin/packages/py-botocore/package.py | 4 -- .../builtin/packages/py-bottleneck/package.py | 1 - .../repos/builtin/packages/py-brian2/package.py | 1 - .../repos/builtin/packages/py-cairocffi/package.py | 5 -- .../repos/builtin/packages/py-cartopy/package.py | 11 ---- .../repos/builtin/packages/py-certifi/package.py | 2 - .../repos/builtin/packages/py-cffi/package.py | 4 -- .../repos/builtin/packages/py-chardet/package.py | 2 - .../builtin/packages/py-cloudpickle/package.py | 6 --- .../repos/builtin/packages/py-cmocean/package.py | 1 - .../repos/builtin/packages/py-codecov/package.py | 4 -- .../repos/builtin/packages/py-counter/package.py | 2 - .../repos/builtin/packages/py-cvxopt/package.py | 2 - .../repos/builtin/packages/py-cvxpy/package.py | 3 -- .../repos/builtin/packages/py-cython/package.py | 10 +--- .../repos/builtin/packages/py-dask/package.py | 3 -- .../builtin/packages/py-dateparser/package.py | 5 -- .../repos/builtin/packages/py-deeptools/package.py | 2 - .../repos/builtin/packages/py-diskcache/package.py | 1 - .../repos/builtin/packages/py-docopt/package.py | 2 - .../repos/builtin/packages/py-docutils/package.py | 11 ---- .../repos/builtin/packages/py-dxchange/package.py | 2 - .../repos/builtin/packages/py-dxfile/package.py | 2 - .../packages/py-easybuild-framework/package.py | 3 -- .../repos/builtin/packages/py-ecdsa/package.py | 1 - .../repos/builtin/packages/py-ecos/package.py | 1 - .../repos/builtin/packages/py-edffile/package.py | 2 - .../repos/builtin/packages/py-elephant/package.py | 1 - .../builtin/packages/py-entrypoints/package.py | 2 - .../builtin/packages/py-fenics-dolfinx/package.py | 1 - .../repos/builtin/packages/py-filemagic/package.py | 2 - .../repos/builtin/packages/py-fiona/package.py | 5 -- .../builtin/packages/py-fiscalyear/package.py | 5 -- .../repos/builtin/packages/py-fisher/package.py | 1 - .../repos/builtin/packages/py-freezegun/package.py | 4 -- .../repos/builtin/packages/py-fsspec/package.py | 2 - .../repos/builtin/packages/py-funcsigs/package.py | 3 -- .../repos/builtin/packages/py-future/package.py | 26 ++++++++++ .../packages/py-gee-asset-manager/package.py | 1 - .../repos/builtin/packages/py-geeadd/package.py | 1 - .../builtin/packages/py-geoalchemy2/package.py | 6 --- .../repos/builtin/packages/py-geopandas/package.py | 3 -- .../builtin/packages/py-google-api-core/package.py | 4 ++ .../repos/builtin/packages/py-gpustat/package.py | 2 - .../repos/builtin/packages/py-graphviz/package.py | 5 -- .../repos/builtin/packages/py-grequests/package.py | 1 - .../repos/builtin/packages/py-h5py/package.py | 2 - .../repos/builtin/packages/py-h5sh/package.py | 1 - .../repos/builtin/packages/py-hacking/package.py | 2 - .../repos/builtin/packages/py-horovod/package.py | 59 ++++++++++++++++++---- .../repos/builtin/packages/py-htmlgen/package.py | 2 - .../repos/builtin/packages/py-humanize/package.py | 1 - .../builtin/packages/py-hypothesis/package.py | 8 --- .../repos/builtin/packages/py-imagesize/package.py | 2 - .../repos/builtin/packages/py-iminuit/package.py | 6 --- .../packages/py-importlib-metadata/package.py | 2 - .../builtin/packages/py-intervaltree/package.py | 1 - .../repos/builtin/packages/py-ipykernel/package.py | 4 -- .../repos/builtin/packages/py-ipython/package.py | 6 --- .../builtin/packages/py-ipywidgets/package.py | 2 - .../repos/builtin/packages/py-isort/package.py | 2 - .../repos/builtin/packages/py-jinja2/package.py | 2 - .../repos/builtin/packages/py-jmespath/package.py | 3 -- .../packages/py-jupyterlab-server/package.py | 2 - .../builtin/packages/py-jupyterlab/package.py | 5 -- .../repos/builtin/packages/py-kmodes/package.py | 2 - .../builtin/packages/py-latexcodec/package.py | 2 - .../builtin/packages/py-linecache2/package.py | 2 - .../repos/builtin/packages/py-locket/package.py | 2 - .../builtin/packages/py-logilab-common/package.py | 1 - .../repos/builtin/packages/py-luigi/package.py | 2 - .../repos/builtin/packages/py-mako/package.py | 2 - .../builtin/packages/py-markupsafe/package.py | 2 - .../builtin/packages/py-matplotlib/package.py | 17 ++++--- .../repos/builtin/packages/py-mccabe/package.py | 1 - .../repos/builtin/packages/py-merlin/package.py | 3 -- .../repos/builtin/packages/py-mock/package.py | 2 - .../builtin/packages/py-more-itertools/package.py | 2 - .../builtin/packages/py-msal-extensions/package.py | 1 - .../repos/builtin/packages/py-mypy/package.py | 5 -- .../repos/builtin/packages/py-nose/package.py | 4 -- .../repos/builtin/packages/py-numpy/package.py | 25 +-------- .../repos/builtin/packages/py-oauthlib/package.py | 9 ---- .../repos/builtin/packages/py-olefile/package.py | 2 - .../packages/py-openslide-python/package.py | 2 - .../builtin/packages/py-opt-einsum/package.py | 3 -- .../builtin/packages/py-ordereddict/package.py | 2 - .../repos/builtin/packages/py-oset/package.py | 2 - .../repos/builtin/packages/py-overpy/package.py | 1 - .../repos/builtin/packages/py-packaging/package.py | 10 +--- .../repos/builtin/packages/py-pandas/package.py | 29 +++++------ .../repos/builtin/packages/py-parso/package.py | 2 - .../repos/builtin/packages/py-partd/package.py | 2 - .../repos/builtin/packages/py-pathlib2/package.py | 2 - .../repos/builtin/packages/py-patsy/package.py | 2 - var/spack/repos/builtin/packages/py-pbr/package.py | 16 ------ .../repos/builtin/packages/py-pep8/package.py | 2 - .../repos/builtin/packages/py-pillow/package.py | 6 --- .../repos/builtin/packages/py-pkgconfig/package.py | 3 -- .../repos/builtin/packages/py-pkginfo/package.py | 2 - .../repos/builtin/packages/py-planet/package.py | 3 -- .../repos/builtin/packages/py-pluggy/package.py | 2 - .../repos/builtin/packages/py-preshed/package.py | 1 - .../repos/builtin/packages/py-projectq/package.py | 6 --- .../packages/py-prometheus-client/package.py | 12 +++++ .../repos/builtin/packages/py-psutil/package.py | 3 -- var/spack/repos/builtin/packages/py-py/package.py | 9 ---- .../repos/builtin/packages/py-py2cairo/package.py | 2 + .../repos/builtin/packages/py-py4j/package.py | 1 - .../repos/builtin/packages/py-pyarrow/package.py | 5 -- .../repos/builtin/packages/py-pybind11/package.py | 1 - .../builtin/packages/py-pybtex-docutils/package.py | 2 - .../repos/builtin/packages/py-pybtex/package.py | 12 ----- .../repos/builtin/packages/py-pycparser/package.py | 2 - .../repos/builtin/packages/py-pycuda/package.py | 2 - .../repos/builtin/packages/py-pydotplus/package.py | 1 - .../repos/builtin/packages/py-pygments/package.py | 9 ---- .../packages/py-pyinstrument-cext/package.py | 1 - .../builtin/packages/py-pyinstrument/package.py | 1 - .../repos/builtin/packages/py-pyjwt/package.py | 3 -- .../repos/builtin/packages/py-pykml/package.py | 1 - .../repos/builtin/packages/py-pynn/package.py | 2 - .../repos/builtin/packages/py-pyparsing/package.py | 2 - .../repos/builtin/packages/py-pyprecice/package.py | 3 -- .../repos/builtin/packages/py-pyproj/package.py | 1 - .../repos/builtin/packages/py-pyqt4/package.py | 7 --- .../repos/builtin/packages/py-pyqt5/package.py | 8 --- .../repos/builtin/packages/py-pysocks/package.py | 2 - .../builtin/packages/py-pytest-httpbin/package.py | 1 - .../builtin/packages/py-pytest-isort/package.py | 1 - .../builtin/packages/py-pytest-pep8/package.py | 2 - .../builtin/packages/py-pytest-runner/package.py | 2 - .../repos/builtin/packages/py-pytest/package.py | 2 - .../builtin/packages/py-python-dateutil/package.py | 14 ----- .../packages/py-python-swiftclient/package.py | 2 - .../builtin/packages/py-python-utils/package.py | 2 - .../repos/builtin/packages/py-pytz/package.py | 2 - .../builtin/packages/py-pywavelets/package.py | 2 - .../repos/builtin/packages/py-pyyaml/package.py | 2 - .../repos/builtin/packages/py-pyzmq/package.py | 14 +++-- .../repos/builtin/packages/py-qsymm/package.py | 1 - .../repos/builtin/packages/py-qtconsole/package.py | 2 - .../repos/builtin/packages/py-rasterio/package.py | 8 --- .../builtin/packages/py-readme-renderer/package.py | 2 - .../builtin/packages/py-requests-mock/package.py | 2 - .../packages/py-requests-oauthlib/package.py | 2 - .../repos/builtin/packages/py-requests/package.py | 18 ------- .../builtin/packages/py-robotframework/package.py | 4 -- var/spack/repos/builtin/packages/py-rsa/package.py | 2 - .../builtin/packages/py-s3transfer/package.py | 3 -- .../repos/builtin/packages/py-scandir/package.py | 2 - .../builtin/packages/py-scikit-learn/package.py | 19 +------ .../builtin/packages/py-scikit-optimize/package.py | 1 - .../repos/builtin/packages/py-scipy/package.py | 31 +----------- .../builtin/packages/py-setuptools-scm/package.py | 2 - .../builtin/packages/py-setuptools/package.py | 25 --------- .../repos/builtin/packages/py-shapely/package.py | 6 +-- var/spack/repos/builtin/packages/py-six/package.py | 10 +--- .../builtin/packages/py-snowballstemmer/package.py | 2 - .../repos/builtin/packages/py-spdlog/package.py | 1 - .../repos/builtin/packages/py-spefile/package.py | 2 - .../packages/py-sphinx-rtd-theme/package.py | 3 -- .../repos/builtin/packages/py-sphinx/package.py | 18 ------- .../packages/py-sphinxcontrib-applehelp/package.py | 4 -- .../packages/py-sphinxcontrib-bibtex/package.py | 2 - .../packages/py-sphinxcontrib-devhelp/package.py | 4 -- .../packages/py-sphinxcontrib-htmlhelp/package.py | 4 -- .../packages/py-sphinxcontrib-jsmath/package.py | 4 -- .../py-sphinxcontrib-programoutput/package.py | 3 -- .../packages/py-sphinxcontrib-qthelp/package.py | 4 -- .../py-sphinxcontrib-serializinghtml/package.py | 4 -- .../py-sphinxcontrib-websupport/package.py | 10 ---- .../builtin/packages/py-sqlalchemy/package.py | 3 -- .../repos/builtin/packages/py-srsly/package.py | 5 -- .../builtin/packages/py-statsmodels/package.py | 2 + .../repos/builtin/packages/py-tables/package.py | 5 -- .../repos/builtin/packages/py-tatsu/package.py | 1 - .../builtin/packages/py-tensorflow/package.py | 14 ++--- .../builtin/packages/py-testrepository/package.py | 8 --- .../repos/builtin/packages/py-theano/package.py | 4 -- .../repos/builtin/packages/py-thinc/package.py | 3 -- .../builtin/packages/py-threadpoolctl/package.py | 2 - .../repos/builtin/packages/py-tifffile/package.py | 2 - .../repos/builtin/packages/py-tomopy/package.py | 5 -- .../repos/builtin/packages/py-toolz/package.py | 2 - .../repos/builtin/packages/py-torch/package.py | 37 ++------------ .../builtin/packages/py-torchvision/package.py | 7 --- .../repos/builtin/packages/py-tpot/package.py | 1 - .../repos/builtin/packages/py-tqdm/package.py | 3 -- .../builtin/packages/py-traceback2/package.py | 6 --- .../repos/builtin/packages/py-traitlets/package.py | 1 - .../repos/builtin/packages/py-typing/package.py | 2 - .../builtin/packages/py-update-checker/package.py | 1 - .../repos/builtin/packages/py-urllib3/package.py | 3 -- .../repos/builtin/packages/py-usgs/package.py | 2 - .../repos/builtin/packages/py-vermin/package.py | 5 +- .../repos/builtin/packages/py-wand/package.py | 4 -- .../repos/builtin/packages/py-wasabi/package.py | 1 - .../repos/builtin/packages/py-werkzeug/package.py | 3 -- .../repos/builtin/packages/py-wheel/package.py | 2 - var/spack/repos/builtin/packages/py-wub/package.py | 8 +-- .../repos/builtin/packages/py-wxmplot/package.py | 3 -- .../repos/builtin/packages/py-wxpython/package.py | 12 ----- .../repos/builtin/packages/py-yahmm/package.py | 1 - .../builtin/packages/py-zope-event/package.py | 4 -- .../builtin/packages/py-zope-interface/package.py | 7 --- var/spack/repos/builtin/packages/python/package.py | 21 +++++--- 236 files changed, 209 insertions(+), 918 deletions(-) create mode 100644 var/spack/repos/builtin/packages/py-aiohttp-cors/package.py (limited to 'var') diff --git a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py index e970fee0e5..4f69548a45 100644 --- a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py +++ b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py @@ -18,10 +18,6 @@ class AwsParallelcluster(PythonPackage): 'sean-smith', 'demartinofra', 'enrico-usai', 'lukeseawalker', 'rexcsn', 'ddeidda', 'tilne' ] - import_modules = [ - 'pcluster', 'awsbatch', 'pcluster.dcv', 'pcluster.configure', - 'pcluster.config', 'pcluster.networking' - ] version('2.10.0', sha256='a7a27871b4f54cb913b0c1233e675131e9b2099549af0840d32c36b7e91b104b') version('2.9.1', sha256='12dc22286cd447a16931f1f8619bdd47d4543fd0de7905d52b6c6f83ff9db8a3') diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py index a6f1dfd909..fc56128269 100644 --- a/var/spack/repos/builtin/packages/gdal/package.py +++ b/var/spack/repos/builtin/packages/gdal/package.py @@ -21,11 +21,6 @@ class Gdal(AutotoolsPackage): maintainers = ['adamjstewart'] - import_modules = [ - 'osgeo', 'osgeo.gdal', 'osgeo.ogr', 'osgeo.osr', - 'osgeo.gdal_array', 'osgeo.gdalconst' - ] - version('3.2.0', sha256='b051f852600ffdf07e337a7f15673da23f9201a9dbb482bd513756a3e5a196a6') version('3.1.4', sha256='7b82486f71c71cec61f9b237116212ce18ef6b90f068cbbf9f7de4fc50b576a8') version('3.1.3', sha256='161cf55371a143826f1d76ce566db1f0a666496eeb4371aed78b1642f219d51d') @@ -170,6 +165,8 @@ class Gdal(AutotoolsPackage): executables = ['^gdal-config$'] + import_modules = PythonPackage.import_modules + @classmethod def determine_version(cls, exe): return Executable(exe)('--version', output=str, error=str).rstrip() @@ -553,16 +550,12 @@ class Gdal(AutotoolsPackage): make('install') install('*.jar', prefix) - @run_after('install') - @on_package_attributes(run_tests=True) - def import_module_test(self): - if '+python' in self.spec: - with working_dir('spack-test', create=True): - for module in self.import_modules: - python('-c', 'import {0}'.format(module)) - @run_after('install') def darwin_fix(self): # The shared library is not installed correctly on Darwin; fix this if 'platform=darwin' in self.spec: fix_darwin_install_name(self.prefix.lib) + + def test(self): + if '+python' in self.spec: + PythonPackage.test(self) diff --git a/var/spack/repos/builtin/packages/mercurial/package.py b/var/spack/repos/builtin/packages/mercurial/package.py index 620ef19bdb..84d8b9ebfd 100644 --- a/var/spack/repos/builtin/packages/mercurial/package.py +++ b/var/spack/repos/builtin/packages/mercurial/package.py @@ -13,13 +13,6 @@ class Mercurial(PythonPackage): homepage = "https://www.mercurial-scm.org" url = "https://www.mercurial-scm.org/release/mercurial-5.3.tar.gz" - import_modules = [ - 'hgext', 'hgext3rd', 'mercurial', 'hgext.convert', 'hgext.fsmonitor', - 'hgext.highlight', 'hgext.largefiles', 'hgext.zeroconf', - 'hgext.fsmonitor.pywatchman', 'mercurial.hgweb', - 'mercurial.httpclient', 'mercurial.pure' - ] - version('5.3', sha256='e57ff61d6b67695149dd451922b40aa455ab02e01711806a131a1e95c544f9b9') version('5.1.2', sha256='15af0b090b23649e0e53621a88dde97b55a734d7cb08b77d3df284db70d44e2e') version('5.1.1', sha256='35fc8ba5e0379c1b3affa2757e83fb0509e8ac314cbd9f1fd133cf265d16e49f') diff --git a/var/spack/repos/builtin/packages/py-accimage/package.py b/var/spack/repos/builtin/packages/py-accimage/package.py index 3ef812704c..a22c3631ee 100644 --- a/var/spack/repos/builtin/packages/py-accimage/package.py +++ b/var/spack/repos/builtin/packages/py-accimage/package.py @@ -22,6 +22,8 @@ class PyAccimage(PythonPackage): depends_on('py-numpy', type='test') depends_on('py-imageio', type='test') - def test(self): + @run_after('build') + @on_package_attributes(run_tests=True) + def build_test(self): pytest = which('pytest') pytest('test.py') diff --git a/var/spack/repos/builtin/packages/py-adb-enhanced/package.py b/var/spack/repos/builtin/packages/py-adb-enhanced/package.py index 92eff9a04a..f1e830e9c1 100644 --- a/var/spack/repos/builtin/packages/py-adb-enhanced/package.py +++ b/var/spack/repos/builtin/packages/py-adb-enhanced/package.py @@ -25,4 +25,3 @@ class PyAdbEnhanced(PythonPackage): depends_on('py-future', type=('build', 'run')) depends_on('py-psutil', type=('build', 'run')) depends_on('py-asyncio', type=('build', 'run')) - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-aenum/package.py b/var/spack/repos/builtin/packages/py-aenum/package.py index 3fa4c63a80..fb275c7891 100644 --- a/var/spack/repos/builtin/packages/py-aenum/package.py +++ b/var/spack/repos/builtin/packages/py-aenum/package.py @@ -13,8 +13,6 @@ class PyAenum(PythonPackage): homepage = "https://bitbucket.org/stoneleaf/aenum" url = "https://pypi.io/packages/source/a/aenum/aenum-2.1.2.tar.gz" - import_modules = ['aenum'] - version('2.1.2', sha256='a3208e4b28db3a7b232ff69b934aef2ea1bf27286d9978e1e597d46f490e4687') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-aiohttp-cors/package.py b/var/spack/repos/builtin/packages/py-aiohttp-cors/package.py new file mode 100644 index 0000000000..8d4dd2f7d1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-aiohttp-cors/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2020 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) + + +class PyAiohttpCors(PythonPackage): + """aiohttp_cors library implements Cross Origin Resource Sharing (CORS) + support for aiohttp asyncio-powered asynchronous HTTP server.""" + + homepage = "https://github.com/aio-libs/aiohttp-cors" + url = "https://pypi.io/packages/source/a/aiohttp_cors/aiohttp-cors-0.7.0.tar.gz" + + version('0.7.0', sha256='4d39c6d7100fd9764ed1caf8cebf0eb01bf5e3f24e2e073fda6234bc48b19f5d') + + depends_on('python@3.4.1:', type=('build', 'run')) + depends_on('py-setuptools@20.8.1:', type='build') + depends_on('py-aiohttp@1.1:', type=('build', 'run')) + depends_on('py-typing', when='^python@:3.4', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-alabaster/package.py b/var/spack/repos/builtin/packages/py-alabaster/package.py index 5d623519b7..65ed9f89b6 100644 --- a/var/spack/repos/builtin/packages/py-alabaster/package.py +++ b/var/spack/repos/builtin/packages/py-alabaster/package.py @@ -13,11 +13,8 @@ class PyAlabaster(PythonPackage): homepage = "https://alabaster.readthedocs.io/" url = "https://pypi.io/packages/source/a/alabaster/alabaster-0.7.10.tar.gz" - import_modules = ['alabaster'] - version('0.7.12', sha256='a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02') version('0.7.10', sha256='37cdcb9e9954ed60912ebc1ca12a9d12178c26637abdf124e3cde2341c257fe0') version('0.7.9', sha256='47afd43b08a4ecaa45e3496e139a193ce364571e7e10c6a87ca1a4c57eb7ea08') depends_on('py-setuptools', type='build') - depends_on('py-pygments', type='test') diff --git a/var/spack/repos/builtin/packages/py-apipkg/package.py b/var/spack/repos/builtin/packages/py-apipkg/package.py index 6799ad8f26..f5812df50d 100644 --- a/var/spack/repos/builtin/packages/py-apipkg/package.py +++ b/var/spack/repos/builtin/packages/py-apipkg/package.py @@ -18,5 +18,3 @@ class PyApipkg(PythonPackage): depends_on('py-setuptools@30.3.0:', type='build') depends_on('py-setuptools-scm', type='build') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) - depends_on('py-py', type='test') - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-appdirs/package.py b/var/spack/repos/builtin/packages/py-appdirs/package.py index 29b6c4f85b..87e3bba0e7 100644 --- a/var/spack/repos/builtin/packages/py-appdirs/package.py +++ b/var/spack/repos/builtin/packages/py-appdirs/package.py @@ -13,16 +13,8 @@ class PyAppdirs(PythonPackage): homepage = "https://github.com/ActiveState/appdirs" url = "https://pypi.io/packages/source/a/appdirs/appdirs-1.4.3.tar.gz" - import_modules = ['appdirs'] - version('1.4.3', sha256='9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92') version('1.4.0', sha256='8fc245efb4387a4e3e0ac8ebcc704582df7d72ff6a42a53f5600bbb18fdaadc5') patch('setuptools-import.patch', when='@:1.4.0') - - # Newer versions of setuptools require appdirs. Although setuptools is an - # optional dependency of appdirs, if it is not found, setup.py will - # fallback on distutils.core instead. Don't add a setuptools dependency - # or we won't be able to bootstrap setuptools. - - # depends_on('py-setuptools', type='build') + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-archspec/package.py b/var/spack/repos/builtin/packages/py-archspec/package.py index 54aaea8037..be8ffe331a 100644 --- a/var/spack/repos/builtin/packages/py-archspec/package.py +++ b/var/spack/repos/builtin/packages/py-archspec/package.py @@ -12,8 +12,6 @@ class PyArchspec(PythonPackage): maintainers = ['alalazo'] - import_modules = ['archspec'] - version('0.1.1', sha256='34bafad493b41208857232e21776216d716de37ab051a6a4a1cc1653f7e26423') depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-argon2-cffi/package.py b/var/spack/repos/builtin/packages/py-argon2-cffi/package.py index 954c86331c..e799949e13 100644 --- a/var/spack/repos/builtin/packages/py-argon2-cffi/package.py +++ b/var/spack/repos/builtin/packages/py-argon2-cffi/package.py @@ -16,6 +16,3 @@ class PyArgon2Cffi(PythonPackage): depends_on('py-cffi@1.0.0:', type=('build', 'run')) depends_on('py-six', type=('build', 'run')) depends_on('py-enum34', when='^python@:3.3', type=('build', 'run')) - depends_on('py-coverage@5.0.2:+toml', type='test') - depends_on('py-hypothesis', type='test') - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-args/package.py b/var/spack/repos/builtin/packages/py-args/package.py index 08364481e8..d425a06e24 100644 --- a/var/spack/repos/builtin/packages/py-args/package.py +++ b/var/spack/repos/builtin/packages/py-args/package.py @@ -15,4 +15,3 @@ class PyArgs(PythonPackage): version('0.1.0', sha256='a785b8d837625e9b61c39108532d95b85274acd679693b71ebb5156848fcf814') depends_on('py-setuptools', type='build') - depends_on('py-nose', type='test') diff --git a/var/spack/repos/builtin/packages/py-arrow/package.py b/var/spack/repos/builtin/packages/py-arrow/package.py index 32a9885f8f..cfc62140c5 100644 --- a/var/spack/repos/builtin/packages/py-arrow/package.py +++ b/var/spack/repos/builtin/packages/py-arrow/package.py @@ -25,6 +25,3 @@ class PyArrow(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-backports-functools-lru-cache@1.2.1:', type=('build', 'run'), when='^python@2.7:2.8') depends_on('py-python-dateutil', type=('build', 'run')) - depends_on('py-chai', type='test') - depends_on('py-mock', type='test') - depends_on('py-pytz@2019.0:', type='test') diff --git a/var/spack/repos/builtin/packages/py-asteval/package.py b/var/spack/repos/builtin/packages/py-asteval/package.py index 4f80a22789..7392c3d296 100644 --- a/var/spack/repos/builtin/packages/py-asteval/package.py +++ b/var/spack/repos/builtin/packages/py-asteval/package.py @@ -16,4 +16,3 @@ class PyAsteval(PythonPackage): depends_on('python@3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-astor/package.py b/var/spack/repos/builtin/packages/py-astor/package.py index 38c77c5196..97ecb71956 100644 --- a/var/spack/repos/builtin/packages/py-astor/package.py +++ b/var/spack/repos/builtin/packages/py-astor/package.py @@ -18,8 +18,6 @@ class PyAstor(PythonPackage): depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-nose', type='test') - depends_on('py-astunparse', type='test') # Build fails with newer versions of setuptools # https://github.com/berkerpeksag/astor/issues/162 diff --git a/var/spack/repos/builtin/packages/py-astropy/package.py b/var/spack/repos/builtin/packages/py-astropy/package.py index 6e5dc8282b..38501cf3e0 100644 --- a/var/spack/repos/builtin/packages/py-astropy/package.py +++ b/var/spack/repos/builtin/packages/py-astropy/package.py @@ -15,8 +15,6 @@ class PyAstropy(PythonPackage): homepage = 'https://astropy.org/' url = 'https://pypi.io/packages/source/a/astropy/astropy-4.0.1.post1.tar.gz' - install_time_test_callbacks = ['install_test', 'import_module_test'] - version('4.0.1.post1', sha256='5c304a6c1845ca426e7bc319412b0363fccb4928cb4ba59298acd1918eec44b5') version('3.2.1', sha256='706c0457789c78285e5464a5a336f5f0b058d646d60f4e5f5ba1f7d5bf424b28') version('2.0.14', sha256='618807068609a4d8aeb403a07624e9984f566adc0dc0f5d6b477c3658f31aeb6') @@ -87,6 +85,8 @@ class PyAstropy(PythonPackage): return args + @run_after('install') + @on_package_attributes(run_tests=True) def install_test(self): with working_dir('spack-test', create=True): python('-c', 'import astropy; astropy.test()') diff --git a/var/spack/repos/builtin/packages/py-atomicwrites/package.py b/var/spack/repos/builtin/packages/py-atomicwrites/package.py index de8ec7788b..7ef16004c3 100644 --- a/var/spack/repos/builtin/packages/py-atomicwrites/package.py +++ b/var/spack/repos/builtin/packages/py-atomicwrites/package.py @@ -12,8 +12,6 @@ class PyAtomicwrites(PythonPackage): homepage = "https://github.com/untitaker/python-atomicwrites" url = "https://pypi.io/packages/source/a/atomicwrites/atomicwrites-1.3.0.tar.gz" - import_modules = ['atomicwrites'] - version('1.3.0', sha256='75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6') version('1.1.5', sha256='240831ea22da9ab882b551b31d4225591e5e447a68c5e188db5b89ca1d487585') diff --git a/var/spack/repos/builtin/packages/py-attrs/package.py b/var/spack/repos/builtin/packages/py-attrs/package.py index cdb3d490c5..6a17ec7fc6 100644 --- a/var/spack/repos/builtin/packages/py-attrs/package.py +++ b/var/spack/repos/builtin/packages/py-attrs/package.py @@ -12,8 +12,6 @@ class PyAttrs(PythonPackage): homepage = "http://attrs.org/" url = "https://pypi.io/packages/source/a/attrs/attrs-20.3.0.tar.gz" - import_modules = ['attr'] - version('20.3.0', sha256='832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700') version('20.2.0', sha256='26b54ddbbb9ee1d34d5d3668dd37d6cf74990ab23c828c2888dccdceee395594') version('20.1.0', sha256='0ef97238856430dcf9228e07f316aefc17e8939fc8507e18c6501b761ef1a42a') @@ -25,11 +23,3 @@ class PyAttrs(PythonPackage): depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') - - depends_on('py-coverage', type='test') - depends_on('py-hypothesis', type='test') - depends_on('py-pympler', type='test') - depends_on('py-pytest', type='test') - depends_on('py-pytest@4.3.0:', type='test', when='@19.3.0:') - depends_on('py-six', type='test') - depends_on('py-zope-interface', type='test') diff --git a/var/spack/repos/builtin/packages/py-awesome-slugify/package.py b/var/spack/repos/builtin/packages/py-awesome-slugify/package.py index 2d8ac680e4..5348236a0f 100644 --- a/var/spack/repos/builtin/packages/py-awesome-slugify/package.py +++ b/var/spack/repos/builtin/packages/py-awesome-slugify/package.py @@ -18,4 +18,3 @@ class PyAwesomeSlugify(PythonPackage): depends_on('py-regex', type=('build', 'run')) depends_on('py-unidecode@0.04.14:0.04.99', type=('build', 'run')) - depends_on('py-nose', type='test') diff --git a/var/spack/repos/builtin/packages/py-azure-cli-core/package.py b/var/spack/repos/builtin/packages/py-azure-cli-core/package.py index 07e520c530..adaeb282e1 100644 --- a/var/spack/repos/builtin/packages/py-azure-cli-core/package.py +++ b/var/spack/repos/builtin/packages/py-azure-cli-core/package.py @@ -36,4 +36,3 @@ class PyAzureCliCore(PythonPackage): depends_on('py-ndg-httpsclient', when='^python@:2.7.8', type=('build', 'run')) depends_on('py-pyasn1', when='^python@:2.7.8', type=('build', 'run')) depends_on('py-futures', when='^python@:2', type=('build', 'run')) - depends_on('py-mock', type='test') diff --git a/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py b/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py index bb379686be..18f8cb5591 100644 --- a/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py +++ b/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py @@ -15,4 +15,3 @@ class PyAzureCliTelemetry(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-applicationinsights@0.11.1:0.11.999', type=('build', 'run')) depends_on('py-portalocker@1.2:1.999', type=('build', 'run')) - depends_on('py-mock', type='test') diff --git a/var/spack/repos/builtin/packages/py-azure-cli/package.py b/var/spack/repos/builtin/packages/py-azure-cli/package.py index faa09d1cfd..44017651e7 100644 --- a/var/spack/repos/builtin/packages/py-azure-cli/package.py +++ b/var/spack/repos/builtin/packages/py-azure-cli/package.py @@ -99,4 +99,3 @@ class PyAzureCli(PythonPackage): depends_on('py-xmltodict@0.12:0.999', type=('build', 'run')) depends_on('py-javaproperties@0.5.1', type=('build', 'run')) depends_on('py-jsondiff@1.2.0', type=('build', 'run')) - depends_on('py-mock@4.0:4.999', type='test') diff --git a/var/spack/repos/builtin/packages/py-babel/package.py b/var/spack/repos/builtin/packages/py-babel/package.py index f95746fe8f..13bf99a07b 100644 --- a/var/spack/repos/builtin/packages/py-babel/package.py +++ b/var/spack/repos/builtin/packages/py-babel/package.py @@ -14,8 +14,6 @@ class PyBabel(PythonPackage): homepage = "http://babel.pocoo.org/en/latest/" url = "https://pypi.io/packages/source/B/Babel/Babel-2.7.0.tar.gz" - import_modules = ['babel', 'babel.localtime', 'babel.messages'] - version('2.7.0', sha256='e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28') version('2.6.0', sha256='8cba50f48c529ca3fa18cf81fa9403be176d374ac4d60738b839122dfaaa3d23') version('2.4.0', sha256='8c98f5e5f8f5f088571f2c6bd88d530e331cbbcb95a7311a0db69d3dca7ec563') @@ -24,5 +22,3 @@ class PyBabel(PythonPackage): depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) depends_on('py-pytz@2015.7:', type=('build', 'run')) - depends_on('py-pytest', type='test') - depends_on('py-freezegun', type='test') diff --git a/var/spack/repos/builtin/packages/py-basis-set-exchange/package.py b/var/spack/repos/builtin/packages/py-basis-set-exchange/package.py index 92cd2b6d72..03bc8b99ca 100644 --- a/var/spack/repos/builtin/packages/py-basis-set-exchange/package.py +++ b/var/spack/repos/builtin/packages/py-basis-set-exchange/package.py @@ -29,5 +29,3 @@ class PyBasisSetExchange(PythonPackage): depends_on('py-jsonschema', type=('build', 'run')) depends_on('py-setuptools', type='build') depends_on('python@3:', type=('build', 'run')) - depends_on('py-pytest@4.0:', type='test') - depends_on('py-pytest-cov', type='test') diff --git a/var/spack/repos/builtin/packages/py-black/package.py b/var/spack/repos/builtin/packages/py-black/package.py index 913b2592c8..52f1867867 100644 --- a/var/spack/repos/builtin/packages/py-black/package.py +++ b/var/spack/repos/builtin/packages/py-black/package.py @@ -18,6 +18,8 @@ class PyBlack(PythonPackage): version('19.3b0', sha256='68950ffd4d9169716bcb8719a56c07a2f4485354fec061cdd5910aa07369731c') version('18.9b0', sha256='e030a9a28f542debc08acceb273f228ac422798e5215ba2a791a6ddeaaca22a5') + variant('d', default=False, description='enable blackd HTTP server') + depends_on('python@3.6.0:') # Needs setuptools at runtime so that `import pkg_resources` succeeds # See #8843 and #8689 for examples of setuptools added as a runtime dep @@ -28,3 +30,14 @@ class PyBlack(PythonPackage): depends_on('py-click@6.5:', type=('build', 'run')) depends_on('py-appdirs', type=('build', 'run')) depends_on('py-toml@0.9.4:', type=('build', 'run')) + depends_on('py-aiohttp@3.3.2:', when='+d', type=('build', 'run')) + depends_on('py-aiohttp-cors', when='+d', type=('build', 'run')) + + @property + def import_modules(self): + modules = ['blib2to3', 'blib2to3.pgen2', 'black'] + + if '+d' in self.spec: + modules.append('blackd') + + return modules diff --git a/var/spack/repos/builtin/packages/py-blis/package.py b/var/spack/repos/builtin/packages/py-blis/package.py index ce7f6c4c65..74ea43690b 100644 --- a/var/spack/repos/builtin/packages/py-blis/package.py +++ b/var/spack/repos/builtin/packages/py-blis/package.py @@ -15,4 +15,3 @@ class PyBlis(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-numpy@1.15:', type=('build', 'run')) - depends_on('py-hypothesis', type='test') diff --git a/var/spack/repos/builtin/packages/py-blosc/package.py b/var/spack/repos/builtin/packages/py-blosc/package.py index da185302ff..8e6badf99f 100644 --- a/var/spack/repos/builtin/packages/py-blosc/package.py +++ b/var/spack/repos/builtin/packages/py-blosc/package.py @@ -19,5 +19,3 @@ class PyBlosc(PythonPackage): depends_on('python@3.6:', type=('build', 'run')) depends_on('py-scikit-build', type='build') # depends_on('c-blosc') # shipped internally - depends_on('py-numpy', type='test') - depends_on('py-psutil', type='test') diff --git a/var/spack/repos/builtin/packages/py-boto3/package.py b/var/spack/repos/builtin/packages/py-boto3/package.py index e31d3b8110..0daa62be81 100644 --- a/var/spack/repos/builtin/packages/py-boto3/package.py +++ b/var/spack/repos/builtin/packages/py-boto3/package.py @@ -12,11 +12,6 @@ class PyBoto3(PythonPackage): homepage = "https://github.com/boto/boto3" url = "https://pypi.io/packages/source/b/boto3/boto3-1.10.44.tar.gz" - import_modules = [ - 'boto3', 'boto3.s3', 'boto3.resources', 'boto3.dynamodb', - 'boto3.docs', 'boto3.ec2' - ] - version('1.10.44', sha256='adc0c0269bd65967fd528d7cd826304f381d40d94f2bf2b09f58167e5ac05d86') version('1.10.38', sha256='6cdb063b2ae5ac7b93ded6b6b17e3da1325b32232d5ff56e6800018d4786bba6') version('1.9.169', sha256='9d8bd0ca309b01265793b7e8d7b88c1df439737d77c8725988f0277bbf58d169') diff --git a/var/spack/repos/builtin/packages/py-botocore/package.py b/var/spack/repos/builtin/packages/py-botocore/package.py index 7b05bf0c72..fe0f738a34 100644 --- a/var/spack/repos/builtin/packages/py-botocore/package.py +++ b/var/spack/repos/builtin/packages/py-botocore/package.py @@ -12,8 +12,6 @@ class PyBotocore(PythonPackage): homepage = "https://github.com/boto/botocore" url = "https://pypi.io/packages/source/b/botocore/botocore-1.13.44.tar.gz" - import_modules = ['botocore'] - version('1.13.44', sha256='a4409008c32a3305b9c469c5cc92edb5b79d6fcbf6f56fe126886b545f0a4f3f') version('1.13.38', sha256='15766a367f39dba9de3c6296aaa7da31030f08a0117fd12685e7df682d8acee2') version('1.12.169', sha256='25b44c3253b5ed1c9093efb57ffca440c5099a2d62fa793e8b6c52e72f54b01e') @@ -28,5 +26,3 @@ class PyBotocore(PythonPackage): depends_on('py-urllib3@1.20:1.25', type=('build', 'run')) depends_on('py-urllib3@1.20:1.23', type=('build', 'run'), when='^python@2.6.0:2.6.999') depends_on('py-urllib3@1.20:1.22', type=('build', 'run'), when='^python@3.3.0:3.3.999') - depends_on('py-mock', type='test') - depends_on('py-nose', type='test') diff --git a/var/spack/repos/builtin/packages/py-bottleneck/package.py b/var/spack/repos/builtin/packages/py-bottleneck/package.py index 8870b3197c..9bd5adb5f5 100644 --- a/var/spack/repos/builtin/packages/py-bottleneck/package.py +++ b/var/spack/repos/builtin/packages/py-bottleneck/package.py @@ -16,4 +16,3 @@ class PyBottleneck(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-numpy', type=('build', 'run')) - depends_on('py-nose', type='test') diff --git a/var/spack/repos/builtin/packages/py-brian2/package.py b/var/spack/repos/builtin/packages/py-brian2/package.py index 0e7a7bf31d..849ffca005 100644 --- a/var/spack/repos/builtin/packages/py-brian2/package.py +++ b/var/spack/repos/builtin/packages/py-brian2/package.py @@ -26,7 +26,6 @@ class PyBrian2(PythonPackage): depends_on('py-jinja2@2.7:', type=('build', 'run')) depends_on('py-setuptools@21:', type=('build', 'run')) depends_on('py-sphinx@1.5:', type=('build', 'run'), when='+docs') - depends_on('py-nose@1.0:', type='test') def build_args(self, spec, prefix): return ['--with-cython'] diff --git a/var/spack/repos/builtin/packages/py-cairocffi/package.py b/var/spack/repos/builtin/packages/py-cairocffi/package.py index d4cf1ca37c..1fd2a95fbb 100644 --- a/var/spack/repos/builtin/packages/py-cairocffi/package.py +++ b/var/spack/repos/builtin/packages/py-cairocffi/package.py @@ -14,14 +14,9 @@ class PyCairocffi(PythonPackage): homepage = "https://github.com/Kozea/cairocffi" url = "https://pypi.io/packages/source/c/cairocffi/cairocffi-1.0.2.tar.gz" - import_modules = ['cairocffi'] version('1.0.2', sha256='01ac51ae12c4324ca5809ce270f9dd1b67f5166fe63bd3e497e9ea3ca91946ff') depends_on('python@3.5:', type=('build', 'run')) depends_on('py-setuptools@39.2.0:', type='build') depends_on('py-cffi@1.1.0:', type=('build', 'run')) - depends_on('py-pytest-runner', type='test') - depends_on('py-pytest-cov', type='test') - depends_on('py-pytest-flake8', type='test') - depends_on('py-pytest-isort', type='test') diff --git a/var/spack/repos/builtin/packages/py-cartopy/package.py b/var/spack/repos/builtin/packages/py-cartopy/package.py index 1d19b4da2d..8eebd1fb2b 100644 --- a/var/spack/repos/builtin/packages/py-cartopy/package.py +++ b/var/spack/repos/builtin/packages/py-cartopy/package.py @@ -13,10 +13,6 @@ class PyCartopy(PythonPackage): url = "https://github.com/SciTools/cartopy/archive/v0.18.0.tar.gz" maintainers = ['adamjstewart'] - import_modules = [ - 'cartopy', 'cartopy.sphinxext', 'cartopy.io', 'cartopy.geodesic', - 'cartopy.examples', 'cartopy.mpl', 'cartopy.feature', - ] version('0.18.0', sha256='493ced4698361ffabec1a213d2b711dc836117242c304f3b93f5406182fd8bc2') version('0.17.0', sha256='137642e63952404ec0841fa0333ad14c58fbbf19cca2a5ac6a38498c4b4998fb') @@ -48,11 +44,6 @@ class PyCartopy(PythonPackage): depends_on('pil@1.7.8:', type=('build', 'run'), when='+plotting') depends_on('py-scipy@0.10:', type=('build', 'run'), when='+plotting') - # Testing dependencies - depends_on('py-filelock', type='test') - depends_on('py-mock@1.0.1:', type='test') - depends_on('py-pytest@3.0.0:', type='test') - patch('proj6.patch', when='@0.17.0') phases = ['build_ext', 'install'] @@ -74,8 +65,6 @@ class PyCartopy(PythonPackage): return args # Tests need to be re-added since `phases` was overridden - run_after('build_ext')( - PythonPackage._run_default_build_time_test_callbacks) run_after('install')( PythonPackage._run_default_install_time_test_callbacks) run_after('install')(PythonPackage.sanity_check_prefix) diff --git a/var/spack/repos/builtin/packages/py-certifi/package.py b/var/spack/repos/builtin/packages/py-certifi/package.py index 033ac47a88..78c70cff3f 100644 --- a/var/spack/repos/builtin/packages/py-certifi/package.py +++ b/var/spack/repos/builtin/packages/py-certifi/package.py @@ -14,8 +14,6 @@ class PyCertifi(PythonPackage): homepage = "http://certifi.io/" url = "https://pypi.io/packages/source/c/certifi/certifi-2020.6.20.tar.gz" - import_modules = ['certifi'] - version('2020.6.20', sha256='5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3') version('2019.9.11', sha256='e4f3620cfea4f83eedc95b24abd9cd56f3c4b146dd0177e83a21b4eb49e21e50') version('2019.6.16', sha256='945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695') diff --git a/var/spack/repos/builtin/packages/py-cffi/package.py b/var/spack/repos/builtin/packages/py-cffi/package.py index f333c73ffa..74168d93ab 100644 --- a/var/spack/repos/builtin/packages/py-cffi/package.py +++ b/var/spack/repos/builtin/packages/py-cffi/package.py @@ -13,8 +13,6 @@ class PyCffi(PythonPackage): homepage = "https://cffi.readthedocs.io/en/latest/" url = "https://pypi.io/packages/source/c/cffi/cffi-1.13.0.tar.gz" - import_modules = ['cffi'] - version('1.14.3', sha256='f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591') version('1.13.0', sha256='8fe230f612c18af1df6f348d02d682fe2c28ca0a6c3856c99599cdacae7cf226') version('1.12.2', sha256='e113878a446c6228669144ae8a56e268c91b7f1fafae927adc4879d9849e0ea7') @@ -27,8 +25,6 @@ class PyCffi(PythonPackage): depends_on('py-pycparser', type=('build', 'run')) depends_on('py-pycparser@2.19:', when='^python@:2.6', type=('build', 'run')) depends_on('libffi') - depends_on('py-py', type='test') - depends_on('py-pytest', type='test') def setup_build_environment(self, env): # This sets the compiler (and flags) that distutils will use diff --git a/var/spack/repos/builtin/packages/py-chardet/package.py b/var/spack/repos/builtin/packages/py-chardet/package.py index 8cd829597d..ba24e728d7 100644 --- a/var/spack/repos/builtin/packages/py-chardet/package.py +++ b/var/spack/repos/builtin/packages/py-chardet/package.py @@ -18,5 +18,3 @@ class PyChardet(PythonPackage): depends_on('py-setuptools', type=('build', 'run')) depends_on('py-pytest-runner', type='build') - depends_on('py-pytest', type='test') - depends_on('py-hypothesis', type='test') diff --git a/var/spack/repos/builtin/packages/py-cloudpickle/package.py b/var/spack/repos/builtin/packages/py-cloudpickle/package.py index 0f7e525290..6d55d6c8f1 100644 --- a/var/spack/repos/builtin/packages/py-cloudpickle/package.py +++ b/var/spack/repos/builtin/packages/py-cloudpickle/package.py @@ -12,13 +12,7 @@ class PyCloudpickle(PythonPackage): homepage = "https://github.com/cloudpipe/cloudpickle" url = "https://pypi.io/packages/source/c/cloudpickle/cloudpickle-0.5.2.tar.gz" - import_modules = ['cloudpickle'] - version('1.2.1', sha256='603244e0f552b72a267d47a7d9b347b27a3430f58a0536037a290e7e0e212ecf') version('0.5.2', sha256='b0e63dd89ed5285171a570186751bc9b84493675e99e12789e9a5dc5490ef554') depends_on('py-setuptools', type='build') - - def build_test(self): - # PyPI tarball does not come with unit tests - pass diff --git a/var/spack/repos/builtin/packages/py-cmocean/package.py b/var/spack/repos/builtin/packages/py-cmocean/package.py index aca64870cc..6094fb381f 100644 --- a/var/spack/repos/builtin/packages/py-cmocean/package.py +++ b/var/spack/repos/builtin/packages/py-cmocean/package.py @@ -15,4 +15,3 @@ class PyCmocean(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-matplotlib', type=('build', 'run')) depends_on('py-numpy', type=('build', 'run')) - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-codecov/package.py b/var/spack/repos/builtin/packages/py-codecov/package.py index afced5c19b..73510ac184 100644 --- a/var/spack/repos/builtin/packages/py-codecov/package.py +++ b/var/spack/repos/builtin/packages/py-codecov/package.py @@ -12,13 +12,9 @@ class PyCodecov(PythonPackage): homepage = "https://github.com/codecov/codecov-python" url = "https://pypi.io/packages/source/c/codecov/codecov-2.0.15.tar.gz" - import_modules = ['codecov'] - version('2.0.15', sha256='8ed8b7c6791010d359baed66f84f061bba5bd41174bf324c31311e8737602788') depends_on('py-setuptools', type=('build', 'run')) depends_on('py-requests@2.7.9:', type=('build', 'run')) depends_on('py-coverage', type=('build', 'run')) depends_on('py-argparse', when='^python@:2.6', type=('build', 'run')) - depends_on('py-unittest2', type='test') - depends_on('py-linecache2', type='test') diff --git a/var/spack/repos/builtin/packages/py-counter/package.py b/var/spack/repos/builtin/packages/py-counter/package.py index f751818caa..7f0e7ffe91 100644 --- a/var/spack/repos/builtin/packages/py-counter/package.py +++ b/var/spack/repos/builtin/packages/py-counter/package.py @@ -10,8 +10,6 @@ class PyCounter(PythonPackage): """Counter package defines the "counter.Counter" class similar to bags or multisets in other languages.""" - import_modules = ['counter'] - homepage = "https://github.com/KelSolaar/Counter" url = "https://pypi.io/packages/source/C/Counter/Counter-1.0.0.tar.gz" diff --git a/var/spack/repos/builtin/packages/py-cvxopt/package.py b/var/spack/repos/builtin/packages/py-cvxopt/package.py index 1cc1a932c1..930a40385f 100644 --- a/var/spack/repos/builtin/packages/py-cvxopt/package.py +++ b/var/spack/repos/builtin/packages/py-cvxopt/package.py @@ -13,8 +13,6 @@ class PyCvxopt(PythonPackage): homepage = "http://cvxopt.org/" url = "https://pypi.io/packages/source/c/cvxopt/cvxopt-1.1.9.tar.gz" - import_modules = ['cvxopt'] - version('1.2.5', sha256='94ec8c36bd6628a11de9014346692daeeef99b3b7bae28cef30c7490bbcb2d72') version('1.1.9', sha256='8f157e7397158812cabd340b68546f1baa55a486ed0aad8bc26877593dc2983d') diff --git a/var/spack/repos/builtin/packages/py-cvxpy/package.py b/var/spack/repos/builtin/packages/py-cvxpy/package.py index 68b82e8a59..0b0abad4cf 100644 --- a/var/spack/repos/builtin/packages/py-cvxpy/package.py +++ b/var/spack/repos/builtin/packages/py-cvxpy/package.py @@ -16,13 +16,10 @@ class PyCvxpy(PythonPackage): version('1.0.25', sha256='8535529ddb807067b0d59661dce1d9a6ddb2a218398a38ea7772328ad8a6ea13') depends_on('py-setuptools', type='build') - depends_on('py-nose', type='test') - depends_on('py-numpy@1.15:', type=('build', 'run')) depends_on('py-scipy@1.1.0:', type=('build', 'run')) depends_on('py-ecos@2:', type=('build', 'run')) depends_on('py-scs@1.1.3:', type=('build', 'run')) depends_on('py-osqp@0.4.1', type=('build', 'run')) - depends_on('py-multiprocess', type=('build', 'run')) depends_on('py-six', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-cython/package.py b/var/spack/repos/builtin/packages/py-cython/package.py index 2dd532be2f..c37cf1f54a 100644 --- a/var/spack/repos/builtin/packages/py-cython/package.py +++ b/var/spack/repos/builtin/packages/py-cython/package.py @@ -12,14 +12,6 @@ class PyCython(PythonPackage): homepage = "https://pypi.python.org/pypi/cython" url = "https://pypi.io/packages/source/c/cython/Cython-0.29.21.tar.gz" - import_modules = [ - 'cython', 'Cython', 'Cython.Build', 'Cython.Compiler', - 'Cython.Runtime', 'Cython.Distutils', 'Cython.Debugger', - 'Cython.Debugger.Tests', 'Cython.Plex', 'Cython.Tests', - 'Cython.Build.Tests', 'Cython.Compiler.Tests', 'Cython.Utility', - 'Cython.Tempita', 'pyximport', - ] - version('0.29.21', sha256='e57acb89bd55943c8d8bf813763d20b9099cc7165c0f16b707631a7654be9cad') version('0.29.16', sha256='232755284f942cbb3b43a06cd85974ef3c970a021aef19b5243c03ee2b08fa05') version('0.29.15', sha256='60d859e1efa5cc80436d58aecd3718ff2e74b987db0518376046adedba97ac30') @@ -47,6 +39,8 @@ class PyCython(PythonPackage): """Returns the Cython command""" return Executable(self.prefix.bin.cython) + @run_after('build') + @on_package_attributes(run_tests=True) def build_test(self): # Warning: full suite of unit tests takes a very long time python('runtests.py', '-j', str(make_jobs)) diff --git a/var/spack/repos/builtin/packages/py-dask/package.py b/var/spack/repos/builtin/packages/py-dask/package.py index b6f3a07f10..96744de758 100644 --- a/var/spack/repos/builtin/packages/py-dask/package.py +++ b/var/spack/repos/builtin/packages/py-dask/package.py @@ -38,9 +38,6 @@ class PyDask(PythonPackage): depends_on('python@3.6:', type=('build', 'run'), when='@2.7.0:') depends_on('py-setuptools', type='build') - depends_on('py-pytest@3.1.0:', type='test') - depends_on('py-requests', type='test') - depends_on('py-pytest-runner', type='test') # Requirements for dask.array depends_on('py-numpy@1.10.4:', type=('build', 'run'), when='+array') diff --git a/var/spack/repos/builtin/packages/py-dateparser/package.py b/var/spack/repos/builtin/packages/py-dateparser/package.py index 5d233e6377..cc0ac18a8a 100644 --- a/var/spack/repos/builtin/packages/py-dateparser/package.py +++ b/var/spack/repos/builtin/packages/py-dateparser/package.py @@ -26,8 +26,3 @@ class PyDateparser(PythonPackage): depends_on('py-ruamel-yaml', type=('build', 'run'), when='+calendars') depends_on('py-convertdate', type=('build', 'run'), when='+calendars') depends_on('py-jdatetime', type=('build', 'run'), when='+calendars') - depends_on('py-mock', type='test') - depends_on('py-nose', type='test') - depends_on('py-parameterized', type='test') - depends_on('py-six', type='test') - depends_on('py-coverage', type='test') diff --git a/var/spack/repos/builtin/packages/py-deeptools/package.py b/var/spack/repos/builtin/packages/py-deeptools/package.py index 35103a5e5d..8ce9e1519e 100644 --- a/var/spack/repos/builtin/packages/py-deeptools/package.py +++ b/var/spack/repos/builtin/packages/py-deeptools/package.py @@ -30,8 +30,6 @@ class PyDeeptools(PythonPackage): depends_on('py-plotly@2.0.0:', type=('build', 'run')) depends_on('py-deeptoolsintervals@0.1.8:', type=('build', 'run')) - depends_on('py-nose', type='test') - def patch(self): # Add nosetest hook for "python setup.py test" argument. filter_file(r'^setup\(', diff --git a/var/spack/repos/builtin/packages/py-diskcache/package.py b/var/spack/repos/builtin/packages/py-diskcache/package.py index 042183cdf3..8e8f76326b 100644 --- a/var/spack/repos/builtin/packages/py-diskcache/package.py +++ b/var/spack/repos/builtin/packages/py-diskcache/package.py @@ -13,4 +13,3 @@ class PyDiskcache(PythonPackage): version('4.1.0', sha256='bcee5a59f9c264e2809e58d01be6569a3bbb1e36a1e0fb83f7ef9b2075f95ce0') depends_on('py-setuptools', type='build') - depends_on('py-tox', type='test') diff --git a/var/spack/repos/builtin/packages/py-docopt/package.py b/var/spack/repos/builtin/packages/py-docopt/package.py index ce0dcd40ad..02bea78e7a 100644 --- a/var/spack/repos/builtin/packages/py-docopt/package.py +++ b/var/spack/repos/builtin/packages/py-docopt/package.py @@ -12,8 +12,6 @@ class PyDocopt(PythonPackage): homepage = "http://docopt.org/" url = "https://pypi.io/packages/source/d/docopt/docopt-0.6.2.tar.gz" - import_modules = ['docopt'] - version('0.6.2', sha256='49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-docutils/package.py b/var/spack/repos/builtin/packages/py-docutils/package.py index 07b0da2534..4ff1d4252e 100644 --- a/var/spack/repos/builtin/packages/py-docutils/package.py +++ b/var/spack/repos/builtin/packages/py-docutils/package.py @@ -17,17 +17,6 @@ class PyDocutils(PythonPackage): homepage = "http://docutils.sourceforge.net/" url = "https://pypi.io/packages/source/d/docutils/docutils-0.15.2.tar.gz" - import_modules = [ - 'docutils', 'docutils.languages', 'docutils.parsers', - 'docutils.readers', 'docutils.transforms', 'docutils.utils', - 'docutils.writers', 'docutils.parsers.rst', - 'docutils.parsers.rst.directives', 'docutils.parsers.rst.languages', - 'docutils.utils.math', 'docutils.writers.html4css1', - 'docutils.writers.html5_polyglot', 'docutils.writers.latex2e', - 'docutils.writers.odf_odt', 'docutils.writers.pep_html', - 'docutils.writers.s5_html', 'docutils.writers.xetex' - ] - version('0.15.2', sha256='a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99') version('0.14', sha256='51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274') version('0.13.1', sha256='718c0f5fb677be0f34b781e04241c4067cbd9327b66bdd8e763201130f5175be') diff --git a/var/spack/repos/builtin/packages/py-dxchange/package.py b/var/spack/repos/builtin/packages/py-dxchange/package.py index be0a23916c..5a96d68bdc 100644 --- a/var/spack/repos/builtin/packages/py-dxchange/package.py +++ b/var/spack/repos/builtin/packages/py-dxchange/package.py @@ -14,8 +14,6 @@ class PyDxchange(PythonPackage): homepage = "https://github.com/data-exchange/dxchange" url = "https://github.com/data-exchange/dxchange/archive/v0.1.2.tar.gz" - import_modules = ['dxchange'] - version('0.1.2', sha256='d005b036b6323d0dffd5944c3da0b8a90496d96277654e72b53717058dd5fd87') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-dxfile/package.py b/var/spack/repos/builtin/packages/py-dxfile/package.py index aa7eac9d91..27066291c7 100644 --- a/var/spack/repos/builtin/packages/py-dxfile/package.py +++ b/var/spack/repos/builtin/packages/py-dxfile/package.py @@ -13,8 +13,6 @@ class PyDxfile(PythonPackage): homepage = "https://github.com/data-exchange/dxfile" url = "https://github.com/data-exchange/dxfile/archive/v0.4.tar.gz" - import_modules = ['dxfile'] - version('0.4', sha256='b7729eebdc7c99a66a8b339fc10019aa8565e02bd12708540fb3f47935f004c7') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-easybuild-framework/package.py b/var/spack/repos/builtin/packages/py-easybuild-framework/package.py index 9096f62708..e283fd825b 100644 --- a/var/spack/repos/builtin/packages/py-easybuild-framework/package.py +++ b/var/spack/repos/builtin/packages/py-easybuild-framework/package.py @@ -22,6 +22,3 @@ class PyEasybuildFramework(PythonPackage): depends_on('python@2.6:2.8,3.5:', when='@4:', type=('build', 'run')) depends_on('py-setuptools', when='@:3', type=('build', 'run')) depends_on('py-vsc-base@2.5.4:', when='@2.9:3', type='run') - - # Only required for tests (python -O -m test.framework.suite) - depends_on('py-vsc-install', when='@:3', type='test') diff --git a/var/spack/repos/builtin/packages/py-ecdsa/package.py b/var/spack/repos/builtin/packages/py-ecdsa/package.py index 2401b9bd27..0ba06e98fb 100644 --- a/var/spack/repos/builtin/packages/py-ecdsa/package.py +++ b/var/spack/repos/builtin/packages/py-ecdsa/package.py @@ -18,4 +18,3 @@ class PyEcdsa(PythonPackage): depends_on('python@2.6:2.8,3.3:', type=('build', 'run')) depends_on('py-setuptools', type='build') depends_on('py-six@1.9.0:', type=('build', 'run')) - depends_on('openssl', type='test') diff --git a/var/spack/repos/builtin/packages/py-ecos/package.py b/var/spack/repos/builtin/packages/py-ecos/package.py index 84e3bcd9eb..97ce50b68c 100644 --- a/var/spack/repos/builtin/packages/py-ecos/package.py +++ b/var/spack/repos/builtin/packages/py-ecos/package.py @@ -16,6 +16,5 @@ class PyEcos(PythonPackage): version('2.0.7.post1', sha256='83e90f42b3f32e2a93f255c3cfad2da78dbd859119e93844c45d2fca20bdc758') depends_on('py-setuptools', type='build') - depends_on('py-nose', type='test') depends_on('py-numpy@1.6:', type=('build', 'run')) depends_on('py-scipy@0.9:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-edffile/package.py b/var/spack/repos/builtin/packages/py-edffile/package.py index ab4a9f9ed9..d902b922b1 100644 --- a/var/spack/repos/builtin/packages/py-edffile/package.py +++ b/var/spack/repos/builtin/packages/py-edffile/package.py @@ -12,8 +12,6 @@ class PyEdffile(PythonPackage): homepage = "https://github.com/vasole/pymca/blob/master/PyMca5/PyMcaIO/EdfFile.py" git = "https://github.com/conda-forge/edffile-feedstock.git" - import_modules = ['EdfFile'] - version('5.0.0', commit='be5ab4199db9f8209c59e31874934b8536b52301') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-elephant/package.py b/var/spack/repos/builtin/packages/py-elephant/package.py index 7d2477ef40..4ce26bc339 100644 --- a/var/spack/repos/builtin/packages/py-elephant/package.py +++ b/var/spack/repos/builtin/packages/py-elephant/package.py @@ -27,4 +27,3 @@ class PyElephant(PythonPackage): depends_on('py-pandas@0.14.1:', type=('build', 'run'), when='+pandas') depends_on('py-numpydoc@0.5:', type=('build', 'run'), when='+docs') depends_on('py-sphinx@1.2.2:', type=('build', 'run'), when='+docs') - depends_on('py-nose@1.3.3:', type='test') diff --git a/var/spack/repos/builtin/packages/py-entrypoints/package.py b/var/spack/repos/builtin/packages/py-entrypoints/package.py index 84bc7c20f4..4a05b19a64 100644 --- a/var/spack/repos/builtin/packages/py-entrypoints/package.py +++ b/var/spack/repos/builtin/packages/py-entrypoints/package.py @@ -12,8 +12,6 @@ class PyEntrypoints(PythonPackage): homepage = "https://pypi.python.org/pypi/entrypoints" url = "https://pypi.io/packages/source/e/entrypoints/entrypoints-0.2.3.tar.gz" - import_modules = ['entrypoints'] - version('0.3', sha256='c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451') version('0.2.3', sha256='d2d587dde06f99545fb13a383d2cd336a8ff1f359c5839ce3a64c917d10c029f') diff --git a/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py index f84f9ce565..9c709d9166 100644 --- a/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py +++ b/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py @@ -30,7 +30,6 @@ class PyFenicsDolfinx(PythonPackage): depends_on("py-cffi", type=("run")) depends_on("py-numpy", type=("run")) - import_modules = ['dolfinx'] phases = ['build_ext', 'build', 'install'] build_directory = 'python' diff --git a/var/spack/repos/builtin/packages/py-filemagic/package.py b/var/spack/repos/builtin/packages/py-filemagic/package.py index 8d425dfb37..d1a5ffd3c8 100644 --- a/var/spack/repos/builtin/packages/py-filemagic/package.py +++ b/var/spack/repos/builtin/packages/py-filemagic/package.py @@ -15,5 +15,3 @@ class PyFilemagic(PythonPackage): version('1.6', sha256='e684359ef40820fe406f0ebc5bf8a78f89717bdb7fed688af68082d991d6dbf3') depends_on('py-setuptools', type='build') - depends_on('py-mock', type='test', when='^python@3:') - depends_on('py-unittest2', type='test') diff --git a/var/spack/repos/builtin/packages/py-fiona/package.py b/var/spack/repos/builtin/packages/py-fiona/package.py index b4213d5f61..ffaf250408 100644 --- a/var/spack/repos/builtin/packages/py-fiona/package.py +++ b/var/spack/repos/builtin/packages/py-fiona/package.py @@ -13,7 +13,6 @@ class PyFiona(PythonPackage): url = "https://pypi.io/packages/source/F/Fiona/Fiona-1.8.6.tar.gz" maintainers = ['adamjstewart'] - import_modules = ['fiona', 'fiona.fio'] version('1.8.6', sha256='fa31dfe8855b9cd0b128b47a4df558f1b8eda90d2181bff1dd9854e5556efb3e') version('1.7.12', sha256='8b54eb8422d7c502bb7776b184018186bede1a489cf438a7a47f992ade6a0e51') @@ -33,7 +32,3 @@ class PyFiona(PythonPackage): depends_on('py-argparse', type=('build', 'run'), when='^python@:2.6') depends_on('py-ordereddict', type=('build', 'run'), when='^python@:2.6') depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3') - - def build_test(self): - # PyPI tarball does not come with unit tests - pass diff --git a/var/spack/repos/builtin/packages/py-fiscalyear/package.py b/var/spack/repos/builtin/packages/py-fiscalyear/package.py index 407caa7ce5..a0b95ff73f 100644 --- a/var/spack/repos/builtin/packages/py-fiscalyear/package.py +++ b/var/spack/repos/builtin/packages/py-fiscalyear/package.py @@ -17,7 +17,6 @@ class PyFiscalyear(PythonPackage): git = "https://github.com/adamjstewart/fiscalyear.git" maintainers = ['adamjstewart'] - import_modules = ['fiscalyear'] version('master', branch='master') version('0.2.0', sha256='f513616aeb03046406c56d7c69cd9e26f6a12963c71c1410cc3d4532a5bfee71') @@ -25,7 +24,3 @@ class PyFiscalyear(PythonPackage): depends_on('python@2.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') - - depends_on('py-pytest', type='test') - depends_on('py-pytest-runner', type='test') - depends_on('py-pytest-mock', type='test') diff --git a/var/spack/repos/builtin/packages/py-fisher/package.py b/var/spack/repos/builtin/packages/py-fisher/package.py index 45e0fc5110..17318ee202 100644 --- a/var/spack/repos/builtin/packages/py-fisher/package.py +++ b/var/spack/repos/builtin/packages/py-fisher/package.py @@ -18,4 +18,3 @@ class PyFisher(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-numpy', type=('build', 'run')) - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-freezegun/package.py b/var/spack/repos/builtin/packages/py-freezegun/package.py index 3329c975bc..4a99441796 100644 --- a/var/spack/repos/builtin/packages/py-freezegun/package.py +++ b/var/spack/repos/builtin/packages/py-freezegun/package.py @@ -13,13 +13,9 @@ class PyFreezegun(PythonPackage): homepage = "https://github.com/spulec/freezegun" url = "https://pypi.io/packages/source/f/freezegun/freezegun-0.3.12.tar.gz" - import_modules = ['freezegun'] - version('0.3.12', sha256='2a4d9c8cd3c04a201e20c313caf8b6338f1cfa4cda43f46a94cc4a9fd13ea5e7') depends_on('py-setuptools', type='build') depends_on('py-six', type=('build', 'run')) depends_on('py-python-dateutil@1.0:1.999', type=('build', 'run'), when='^python@:2') depends_on('py-python-dateutil@2:', type=('build', 'run'), when='^python@3:') - depends_on('py-mock', type='test') - depends_on('py-nose', type='test') diff --git a/var/spack/repos/builtin/packages/py-fsspec/package.py b/var/spack/repos/builtin/packages/py-fsspec/package.py index bf82fc803a..f0b58dcb77 100644 --- a/var/spack/repos/builtin/packages/py-fsspec/package.py +++ b/var/spack/repos/builtin/packages/py-fsspec/package.py @@ -12,8 +12,6 @@ class PyFsspec(PythonPackage): homepage = "https://github.com/intake/filesystem_spec" url = "https://pypi.io/packages/source/f/fsspec/fsspec-0.4.4.tar.gz" - import_modules = ['fsspec', 'fsspec.implementations'] - version('0.7.3', sha256='1b540552c93b47e83c568e87507d6e02993e6d1b30bc7285f2336c81c5014103') version('0.4.4', sha256='97697a46e8bf8be34461c2520d6fc4bfca0ed749b22bb2b7c21939fd450a7d63') diff --git a/var/spack/repos/builtin/packages/py-funcsigs/package.py b/var/spack/repos/builtin/packages/py-funcsigs/package.py index ec53173d15..77db9cd6ad 100644 --- a/var/spack/repos/builtin/packages/py-funcsigs/package.py +++ b/var/spack/repos/builtin/packages/py-funcsigs/package.py @@ -12,10 +12,7 @@ class PyFuncsigs(PythonPackage): homepage = "https://pypi.python.org/pypi/funcsigs" url = "https://pypi.io/packages/source/f/funcsigs/funcsigs-1.0.2.tar.gz" - import_modules = ['funcsigs'] - version('1.0.2', sha256='a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50') version('0.4', sha256='d83ce6df0b0ea6618700fe1db353526391a8a3ada1b7aba52fed7a61da772033') depends_on('py-setuptools@17.1:', type='build') - depends_on('py-unittest2', type='test') diff --git a/var/spack/repos/builtin/packages/py-future/package.py b/var/spack/repos/builtin/packages/py-future/package.py index af2bce85f0..d89490eaf5 100644 --- a/var/spack/repos/builtin/packages/py-future/package.py +++ b/var/spack/repos/builtin/packages/py-future/package.py @@ -21,3 +21,29 @@ class PyFuture(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-importlib', type=('build', 'run'), when='^python@:2.6') depends_on('py-argparse', type=('build', 'run'), when='^python@:2.6') + + @property + def import_modules(self): + modules = [ + 'copyreg', '_thread', 'past', 'past.types', 'past.translation', + 'past.utils', 'past.builtins', 'reprlib', 'html', 'builtins', + 'http', '_dummy_thread', 'queue', 'xmlrpc', 'libfuturize', + 'libfuturize.fixes', 'future', 'future.moves', 'future.moves.test', + 'future.moves.urllib', 'future.moves.html', 'future.moves.http', + 'future.moves.dbm', 'future.moves.xmlrpc', 'future.types', + 'future.tests', 'future.utils', 'future.builtins', + 'future.backports', 'future.backports.test', + 'future.backports.urllib', 'future.backports.html', + 'future.backports.http', 'future.backports.xmlrpc', + 'future.backports.email', 'future.backports.email.mime', + 'future.standard_library', 'libpasteurize', 'libpasteurize.fixes', + 'socketserver', '_markupbase' + ] + + if 'platform=windows' in self.spec: + modules.append('winreg') + + if '+tkinter' in self.spec['python']: + modules.extend(['tkinter', 'future.moves.tkinter']) + + return modules diff --git a/var/spack/repos/builtin/packages/py-gee-asset-manager/package.py b/var/spack/repos/builtin/packages/py-gee-asset-manager/package.py index f32108bccd..921d0057ac 100644 --- a/var/spack/repos/builtin/packages/py-gee-asset-manager/package.py +++ b/var/spack/repos/builtin/packages/py-gee-asset-manager/package.py @@ -22,6 +22,5 @@ class PyGeeAssetManager(PythonPackage): depends_on('py-retrying@1.3.3:', type=('build', 'run')) depends_on('py-beautifulsoup4@4.5.1:', type=('build', 'run')) depends_on('py-requests-toolbelt@0.7.0:', type=('build', 'run')) - depends_on('py-pytest@3.0.0:', type=('build', 'test')) depends_on('py-future@0.16.0:', type=('build', 'run')) depends_on('py-google-cloud-storage@1.1.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-geeadd/package.py b/var/spack/repos/builtin/packages/py-geeadd/package.py index 78c260243b..42510838eb 100644 --- a/var/spack/repos/builtin/packages/py-geeadd/package.py +++ b/var/spack/repos/builtin/packages/py-geeadd/package.py @@ -22,7 +22,6 @@ class PyGeeadd(PythonPackage): depends_on('py-clipboard@0.0.4:', type=('build', 'run')) depends_on('py-beautifulsoup4@4.5.1:', type=('build', 'run')) depends_on('py-requests-toolbelt@0.7.0:', type=('build', 'run')) - depends_on('py-pytest@3.0.0:', type=('build', 'test')) depends_on('py-future@0.16.0:', type=('build', 'run')) depends_on('py-google-cloud-storage@1.1.1:', type=('build', 'run')) depends_on('py-oauth2client@4.1.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-geoalchemy2/package.py b/var/spack/repos/builtin/packages/py-geoalchemy2/package.py index dad20c8e16..09080f7d57 100644 --- a/var/spack/repos/builtin/packages/py-geoalchemy2/package.py +++ b/var/spack/repos/builtin/packages/py-geoalchemy2/package.py @@ -20,9 +20,3 @@ class PyGeoalchemy2(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-sqlalchemy@0.8:', type=('build', 'run')) depends_on('py-shapely@1.3.0:', type=('build', 'run'), when='+dev') - - depends_on('py-pycodestyle@2.2.0', type='test') - depends_on('py-flake8@3.2.0', type='test') - depends_on('py-pytest@3.7.4', type='test', when='@0.6.3') - depends_on('py-pytest@3.1.3', type='test', when='@0.4.2') - depends_on('py-pytest-cov@2.5.1', type='test') diff --git a/var/spack/repos/builtin/packages/py-geopandas/package.py b/var/spack/repos/builtin/packages/py-geopandas/package.py index 3373e961e5..e27fec8205 100644 --- a/var/spack/repos/builtin/packages/py-geopandas/package.py +++ b/var/spack/repos/builtin/packages/py-geopandas/package.py @@ -17,9 +17,6 @@ class PyGeopandas(PythonPackage): url = "https://pypi.io/packages/source/g/geopandas/geopandas-0.5.0.tar.gz" maintainers = ['adamjstewart'] - import_modules = [ - 'geopandas', 'geopandas.io', 'geopandas.tools', 'geopandas.datasets' - ] version('0.5.0', sha256='d075d2ab61a502ab92ec6b72aaf9610a1340ec24ed07264fcbdbe944b9e68954') version('0.4.0', sha256='9f5d24d23f33e6d3267a633025e4d9e050b3a1e86d41a96d3ccc5ad95afec3db') diff --git a/var/spack/repos/builtin/packages/py-google-api-core/package.py b/var/spack/repos/builtin/packages/py-google-api-core/package.py index f8ca4ea2b5..be9ce2e32a 100644 --- a/var/spack/repos/builtin/packages/py-google-api-core/package.py +++ b/var/spack/repos/builtin/packages/py-google-api-core/package.py @@ -12,6 +12,10 @@ class PyGoogleApiCore(PythonPackage): homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python" url = "https://pypi.io/packages/source/g/google-api-core/google-api-core-1.14.2.tar.gz" + # google.api_core.operations_v1 and google.api_core.gapic_v1 require + # grpc optional dependency + import_modules = ['google.api_core', 'google.api_core.future'] + version('1.14.2', sha256='2c23fbc81c76b941ffb71301bb975ed66a610e9b03f918feacd1ed59cf43a6ec') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-gpustat/package.py b/var/spack/repos/builtin/packages/py-gpustat/package.py index 1bfab1ba35..c351d3770b 100644 --- a/var/spack/repos/builtin/packages/py-gpustat/package.py +++ b/var/spack/repos/builtin/packages/py-gpustat/package.py @@ -19,5 +19,3 @@ class PyGpustat(PythonPackage): depends_on('py-nvidia-ml-py3@7.352.0:', when='^python@3:', type=('build', 'run')) depends_on('py-psutil', type=('build', 'run')) depends_on('py-blessings@1.6:', type=('build', 'run')) - depends_on('py-mock@2:', type='test') - depends_on('py-pytest@:4', type='test') diff --git a/var/spack/repos/builtin/packages/py-graphviz/package.py b/var/spack/repos/builtin/packages/py-graphviz/package.py index 144321cccf..e556430f9d 100644 --- a/var/spack/repos/builtin/packages/py-graphviz/package.py +++ b/var/spack/repos/builtin/packages/py-graphviz/package.py @@ -30,10 +30,5 @@ class PyGraphviz(PythonPackage): depends_on('py-pep8-naming', type=('build', 'run'), when='+dev') depends_on('py-wheel', type=('build', 'run'), when='+dev') depends_on('py-twine', type=('build', 'run'), when='+dev') - depends_on('py-mock@2:', type='test') - depends_on('py-pytest@3.4:', type='test') - depends_on('py-pytest@3.4:3.9,3.11:', when='@0.11.1', type='test') - depends_on('py-pytest-mock@1.8:', type='test') - depends_on('py-pytest-cov', type='test') depends_on('py-sphinx@1.7:', type=('build', 'run'), when='+docs') depends_on('py-sphinx-rtd-theme', type=('build', 'run'), when='+docs') diff --git a/var/spack/repos/builtin/packages/py-grequests/package.py b/var/spack/repos/builtin/packages/py-grequests/package.py index 53b804bd6f..4f171dabc1 100644 --- a/var/spack/repos/builtin/packages/py-grequests/package.py +++ b/var/spack/repos/builtin/packages/py-grequests/package.py @@ -22,4 +22,3 @@ class PyGrequests(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-gevent', type=('build', 'run')) depends_on('py-requests', type=('build', 'run')) - depends_on('py-nose', type='test') diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py index 2b7d34cc4b..a6479c4379 100644 --- a/var/spack/repos/builtin/packages/py-h5py/package.py +++ b/var/spack/repos/builtin/packages/py-h5py/package.py @@ -14,8 +14,6 @@ class PyH5py(PythonPackage): url = "https://pypi.io/packages/source/h/h5py/h5py-2.10.0.tar.gz" git = "https://github.com/h5py/h5py.git" - import_modules = ['h5py', 'h5py._hl'] - version('master', branch='master') version('2.10.0', sha256='84412798925dc870ffd7107f045d7659e60f5d46d1c70c700375248bf6bf512d') version('2.9.0', sha256='9d41ca62daf36d6b6515ab8765e4c8c4388ee18e2a665701fef2b41563821002') diff --git a/var/spack/repos/builtin/packages/py-h5sh/package.py b/var/spack/repos/builtin/packages/py-h5sh/package.py index a85c123475..e49fd75901 100644 --- a/var/spack/repos/builtin/packages/py-h5sh/package.py +++ b/var/spack/repos/builtin/packages/py-h5sh/package.py @@ -22,4 +22,3 @@ class PyH5sh(PythonPackage): depends_on('py-prompt-toolkit@2:', type=('build', 'run')) depends_on('py-pygments', type=('build', 'run')) depends_on('py-six', type=('build', 'run')) - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-hacking/package.py b/var/spack/repos/builtin/packages/py-hacking/package.py index dae3f8b281..bb8e8c42b2 100644 --- a/var/spack/repos/builtin/packages/py-hacking/package.py +++ b/var/spack/repos/builtin/packages/py-hacking/package.py @@ -12,8 +12,6 @@ class PyHacking(PythonPackage): homepage = "https://docs.openstack.org/hacking/latest/" url = "https://pypi.io/packages/source/h/hacking/hacking-1.1.0.tar.gz" - import_modules = ['hacking'] - version('1.1.0', sha256='23a306f3a1070a4469a603886ba709780f02ae7e0f1fc7061e5c6fb203828fee') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-horovod/package.py b/var/spack/repos/builtin/packages/py-horovod/package.py index 099d0cbf00..26cd83c6c4 100644 --- a/var/spack/repos/builtin/packages/py-horovod/package.py +++ b/var/spack/repos/builtin/packages/py-horovod/package.py @@ -89,12 +89,6 @@ class PyHorovod(PythonPackage, CudaPackage): # There does not appear to be a way to use an external Gloo installation depends_on('cmake', type='build', when='tensor_ops=gloo') - # Test dependencies - depends_on('py-mock', type='test') - depends_on('py-pytest', type='test') - depends_on('py-pytest-forked', type='test') - depends_on('py-parameterized', type='test', when='@0.20:') - conflicts('cuda_arch=none', when='+cuda', msg='Must specify CUDA compute capabilities of your GPU, see ' 'https://developer.nvidia.com/cuda-gpus') @@ -105,6 +99,51 @@ class PyHorovod(PythonPackage, CudaPackage): # https://github.com/horovod/horovod/pull/1835 patch('fma.patch', when='@0.19.0:0.19.1') + @property + def import_modules(self): + modules = [ + 'horovod', 'horovod.runner', 'horovod.runner.util', + 'horovod.runner.elastic', 'horovod.runner.driver', + 'horovod.runner.common', 'horovod.runner.common.util', + 'horovod.runner.common.service', 'horovod.runner.http', + 'horovod.runner.task', 'horovod.common' + ] + + if 'frameworks=tensorflow' in self.spec: + modules.append('horovod.tensorflow') + + if 'frameworks=pytorch' in self.spec: + modules.extend([ + 'horovod.torch', 'horovod.torch.mpi_lib', + 'horovod.torch.elastic', 'horovod.torch.mpi_lib_impl' + ]) + + if 'frameworks=mxnet' in self.spec: + modules.append('horovod.mxnet') + + if 'frameworks=keras' in self.spec: + modules.extend(['horovod.keras', 'horovod._keras']) + + if 'frameworks=spark' in self.spec: + modules.extend([ + 'horovod.spark', 'horovod.spark.driver', + 'horovod.spark.common', 'horovod.spark.task' + ]) + + if 'frameworks=ray' in self.spec: + modules.append('horovod.ray') + + if 'frameworks=tensorflow,keras' in self.spec: + modules.append('horovod.tensorflow.keras') + + if 'frameworks=spark,pytorch' in self.spec: + modules.append('horovod.spark.torch') + + if 'frameworks=spark,keras' in self.spec: + modules.append('horovod.spark.keras') + + return modules + def setup_build_environment(self, env): # https://github.com/horovod/horovod/blob/master/docs/install.rst#environment-variables @@ -167,8 +206,6 @@ class PyHorovod(PythonPackage, CudaPackage): env.set('HOROVOD_CPU_OPERATIONS', self.spec.variants['tensor_ops'].value.upper()) - @run_after('install') - @on_package_attributes(run_tests=True) - def install_test(self): - horovodrun = Executable(self.prefix.bin.horovodrun) - horovodrun('--check-build') + def test(self): + super(PyHorovod, self).test() + run_test(self.prefix.bin.horovodrun, '--check-build') diff --git a/var/spack/repos/builtin/packages/py-htmlgen/package.py b/var/spack/repos/builtin/packages/py-htmlgen/package.py index b15fe69769..5c3ca45b6d 100644 --- a/var/spack/repos/builtin/packages/py-htmlgen/package.py +++ b/var/spack/repos/builtin/packages/py-htmlgen/package.py @@ -18,5 +18,3 @@ class PyHtmlgen(PythonPackage): depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-asserts@0.8.0:0.8.999', type='test') - depends_on('py-typing', type='test') diff --git a/var/spack/repos/builtin/packages/py-humanize/package.py b/var/spack/repos/builtin/packages/py-humanize/package.py index c83200de00..4778ce24d6 100644 --- a/var/spack/repos/builtin/packages/py-humanize/package.py +++ b/var/spack/repos/builtin/packages/py-humanize/package.py @@ -19,4 +19,3 @@ class PyHumanize(PythonPackage): version('0.5.1', sha256='a43f57115831ac7c70de098e6ac46ac13be00d69abbf60bdcac251344785bb19') depends_on('py-setuptools', type='build') - depends_on('py-mock', type='test') diff --git a/var/spack/repos/builtin/packages/py-hypothesis/package.py b/var/spack/repos/builtin/packages/py-hypothesis/package.py index 79a39055d0..68e64adc68 100644 --- a/var/spack/repos/builtin/packages/py-hypothesis/package.py +++ b/var/spack/repos/builtin/packages/py-hypothesis/package.py @@ -12,14 +12,6 @@ class PyHypothesis(PythonPackage): homepage = "https://github.com/HypothesisWorks/hypothesis-python" url = "https://pypi.io/packages/source/h/hypothesis/hypothesis-4.41.2.tar.gz" - import_modules = [ - 'hypothesis', 'hypothesis.searchstrategy', 'hypothesis.extra', - 'hypothesis.utils', 'hypothesis.vendor', 'hypothesis.internal', - 'hypothesis.internal.conjecture' - ] - - # TODO: Add missing dependency required to import hypothesis.extra.django - version('5.3.0', sha256='c9fdb53fe3bf1f8e7dcca1a7dd6e430862502f088aca2903d141511212e79429') version('4.57.1', sha256='3c4369a4b0a1348561048bcda5f1db951a1b8e2a514ea8e8c70d36e656bf6fa0') version('4.41.2', sha256='6847df3ffb4aa52798621dd007e6b61dbcf2d76c30ba37dc2699720e2c734b7a') diff --git a/var/spack/repos/builtin/packages/py-imagesize/package.py b/var/spack/repos/builtin/packages/py-imagesize/package.py index e9f2033413..2dbcbdb71b 100644 --- a/var/spack/repos/builtin/packages/py-imagesize/package.py +++ b/var/spack/repos/builtin/packages/py-imagesize/package.py @@ -13,8 +13,6 @@ class PyImagesize(PythonPackage): homepage = "https://github.com/shibukawa/imagesize_py" url = "https://pypi.io/packages/source/i/imagesize/imagesize-0.7.1.tar.gz" - import_modules = ['imagesize'] - version('1.1.0', sha256='f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5') version('0.7.1', sha256='0ab2c62b87987e3252f89d30b7cedbec12a01af9274af9ffa48108f2c13c6062') diff --git a/var/spack/repos/builtin/packages/py-iminuit/package.py b/var/spack/repos/builtin/packages/py-iminuit/package.py index e9ec1b73bf..035b05cab6 100644 --- a/var/spack/repos/builtin/packages/py-iminuit/package.py +++ b/var/spack/repos/builtin/packages/py-iminuit/package.py @@ -18,9 +18,3 @@ class PyIminuit(PythonPackage): # Required dependencies depends_on('py-setuptools', type='build') depends_on('py-numpy', type=('build', 'run'), when='@1.3:') - - # Optional dependencies - depends_on('py-matplotlib', type='test', when='@1.3:') - depends_on('py-cython', type='test', when='@1.3:') - depends_on('py-pytest', type='test', when='@1.3:') - depends_on('py-scipy', type='test', when='@1.3:') diff --git a/var/spack/repos/builtin/packages/py-importlib-metadata/package.py b/var/spack/repos/builtin/packages/py-importlib-metadata/package.py index f22a812605..2df356f636 100644 --- a/var/spack/repos/builtin/packages/py-importlib-metadata/package.py +++ b/var/spack/repos/builtin/packages/py-importlib-metadata/package.py @@ -25,5 +25,3 @@ class PyImportlibMetadata(PythonPackage): depends_on('py-pathlib2', when='^python@:2', type=('build', 'run')) depends_on('py-contextlib2', when='^python@:2', type=('build', 'run')) depends_on('py-configparser@3.5:', when='^python@:2', type=('build', 'run')) - depends_on('py-importlib-resources', when='^python@:3.6', type='test') - depends_on('py-packaging', type='test') diff --git a/var/spack/repos/builtin/packages/py-intervaltree/package.py b/var/spack/repos/builtin/packages/py-intervaltree/package.py index f5d4501dd7..c89ae107ca 100644 --- a/var/spack/repos/builtin/packages/py-intervaltree/package.py +++ b/var/spack/repos/builtin/packages/py-intervaltree/package.py @@ -15,5 +15,4 @@ class PyIntervaltree(PythonPackage): version('3.0.2', sha256='e8ab75b66077f2e5fb85ac56cb6df834689edb048d38601d53d8867cce3b77d1') depends_on('py-sortedcontainers@2:2.999', type=('build', 'run')) - depends_on('py-pytest', type='test') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-ipykernel/package.py b/var/spack/repos/builtin/packages/py-ipykernel/package.py index 1428f7d804..eee3e033b7 100644 --- a/var/spack/repos/builtin/packages/py-ipykernel/package.py +++ b/var/spack/repos/builtin/packages/py-ipykernel/package.py @@ -36,10 +36,6 @@ class PyIpykernel(PythonPackage): depends_on('py-tornado@4.0:', when='@:4.999', type=('build', 'run')) depends_on('py-tornado@4.2:', when='@5.0.0:', type=('build', 'run')) depends_on('py-appnope', when='platform=darwin', type=('build', 'run')) - depends_on('py-pytest@:5.3.3,5.3.5:', type='test') - depends_on('py-pytest-cov', type='test') - # depends_on('py-flaky', type='test') - depends_on('py-nose', type='test') phases = ['build', 'install', 'install_data'] diff --git a/var/spack/repos/builtin/packages/py-ipython/package.py b/var/spack/repos/builtin/packages/py-ipython/package.py index 2f10a7dddf..ba62552304 100644 --- a/var/spack/repos/builtin/packages/py-ipython/package.py +++ b/var/spack/repos/builtin/packages/py-ipython/package.py @@ -41,9 +41,3 @@ class PyIpython(PythonPackage): depends_on('py-backports-shutil-get-terminal-size', type=('build', 'run'), when="^python@:3.2") depends_on('py-pathlib2', type=('build', 'run'), when="^python@:3.3") depends_on('py-simplegeneric@0.8:', type=('build', 'run'), when='@:7.0.0') - depends_on('py-nose@0.10.1:', type='test') - depends_on('py-requests', type='test') - depends_on('py-testpath', type='test') - depends_on('py-nbformat', type='test') - depends_on('py-ipykernel', type='test') - depends_on('py-numpy@1.14:', type='test') diff --git a/var/spack/repos/builtin/packages/py-ipywidgets/package.py b/var/spack/repos/builtin/packages/py-ipywidgets/package.py index 11b0989069..076d013863 100644 --- a/var/spack/repos/builtin/packages/py-ipywidgets/package.py +++ b/var/spack/repos/builtin/packages/py-ipywidgets/package.py @@ -30,5 +30,3 @@ class PyIpywidgets(PythonPackage): when='@7.4.2') depends_on('py-widgetsnbextension@3.5.0:3.5.999', type=('build', 'run'), when='@7.5.1') - depends_on('py-mock', type='test', when='^python@2.7:2.8') - depends_on('py-nose', type='test') diff --git a/var/spack/repos/builtin/packages/py-isort/package.py b/var/spack/repos/builtin/packages/py-isort/package.py index 1446f70979..612fa8c769 100644 --- a/var/spack/repos/builtin/packages/py-isort/package.py +++ b/var/spack/repos/builtin/packages/py-isort/package.py @@ -16,8 +16,6 @@ class PyIsort(PythonPackage): version('4.2.15', sha256='79f46172d3a4e2e53e7016e663cc7a8b538bec525c36675fcfd2767df30b3983') depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-pytest', type='test') - depends_on('py-mock', type='test') depends_on('python@2.6:2.8,3.3:', type=('build', 'run')) depends_on('python@2.7:2.8,3.4:', type=('build', 'run'), when='@4.3.0:') depends_on('py-futures', type=('build', 'run'), when='@4.3.0: ^python@:3.1') diff --git a/var/spack/repos/builtin/packages/py-jinja2/package.py b/var/spack/repos/builtin/packages/py-jinja2/package.py index 588367c0f5..4210fecc52 100644 --- a/var/spack/repos/builtin/packages/py-jinja2/package.py +++ b/var/spack/repos/builtin/packages/py-jinja2/package.py @@ -14,8 +14,6 @@ class PyJinja2(PythonPackage): homepage = "https://palletsprojects.com/p/jinja/" url = "https://pypi.io/packages/source/J/Jinja2/Jinja2-2.10.3.tar.gz" - import_modules = ['jinja2'] - version('2.10.3', sha256='9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de') version('2.10.1', sha256='065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013') version('2.10', sha256='f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4') diff --git a/var/spack/repos/builtin/packages/py-jmespath/package.py b/var/spack/repos/builtin/packages/py-jmespath/package.py index ed5da676f2..f339adce11 100644 --- a/var/spack/repos/builtin/packages/py-jmespath/package.py +++ b/var/spack/repos/builtin/packages/py-jmespath/package.py @@ -12,9 +12,6 @@ class PyJmespath(PythonPackage): homepage = "https://github.com/jmespath/jmespath.py" url = "https://pypi.io/packages/source/j/jmespath/jmespath-0.9.4.tar.gz" - import_modules = ['jmespath'] - version('0.9.4', sha256='bde2aef6f44302dfb30320115b17d030798de8c4110e28d5cf6cf91a7a31074c') depends_on('py-setuptools', type='build') - depends_on('py-nose', type='test') diff --git a/var/spack/repos/builtin/packages/py-jupyterlab-server/package.py b/var/spack/repos/builtin/packages/py-jupyterlab-server/package.py index 09bfce1b1f..16098d58bf 100644 --- a/var/spack/repos/builtin/packages/py-jupyterlab-server/package.py +++ b/var/spack/repos/builtin/packages/py-jupyterlab-server/package.py @@ -22,5 +22,3 @@ class PyJupyterlabServer(PythonPackage): depends_on('py-jsonschema@3.0.1:', type=('build', 'run')) depends_on('py-notebook@4.2.0:', type=('build', 'run')) depends_on('py-jinja2@2.10:', type=('build', 'run')) - - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-jupyterlab/package.py b/var/spack/repos/builtin/packages/py-jupyterlab/package.py index f19c1b8174..1f3a460cd3 100644 --- a/var/spack/repos/builtin/packages/py-jupyterlab/package.py +++ b/var/spack/repos/builtin/packages/py-jupyterlab/package.py @@ -20,8 +20,3 @@ class PyJupyterlab(PythonPackage): depends_on('py-tornado@:5,6.0.3:', type=('build', 'run')) depends_on('py-jupyterlab-server@1.1.5:1.999', type=('build', 'run')) depends_on('py-jinja2@2.10:', type=('build', 'run')) - depends_on('py-pytest', type='test') - depends_on('py-pytest-check-links', type='test') - depends_on('py-requests', type='test') - depends_on('py-wheel', type='test') - depends_on('py-virtualenv', type='test') diff --git a/var/spack/repos/builtin/packages/py-kmodes/package.py b/var/spack/repos/builtin/packages/py-kmodes/package.py index a3bbe8ea75..e3c348a3b9 100644 --- a/var/spack/repos/builtin/packages/py-kmodes/package.py +++ b/var/spack/repos/builtin/packages/py-kmodes/package.py @@ -13,8 +13,6 @@ class PyKmodes(PythonPackage): homepage = "https://github.com/nicodv/kmodes" url = "https://pypi.io/packages/source/k/kmodes/kmodes-0.10.1.tar.gz" - import_modules = ['kmodes', 'kmodes.util'] - version('0.10.1', sha256='3222c2f672a6356be353955c02d1e38472d9f6074744b4ffb0c058e8c2235ea1') depends_on('python@3.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-latexcodec/package.py b/var/spack/repos/builtin/packages/py-latexcodec/package.py index d379022142..9df819d09b 100644 --- a/var/spack/repos/builtin/packages/py-latexcodec/package.py +++ b/var/spack/repos/builtin/packages/py-latexcodec/package.py @@ -12,8 +12,6 @@ class PyLatexcodec(PythonPackage): homepage = "http://latexcodec.readthedocs.io" url = "https://pypi.io/packages/source/l/latexcodec/latexcodec-1.0.4.tar.gz" - import_modules = ['latexcodec'] - version('1.0.4', sha256='62bf8a3ee298f169a4d014dad5522bc1325b54dc98789a453fd338620387cb6c') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-linecache2/package.py b/var/spack/repos/builtin/packages/py-linecache2/package.py index b490059705..7e23622206 100644 --- a/var/spack/repos/builtin/packages/py-linecache2/package.py +++ b/var/spack/repos/builtin/packages/py-linecache2/package.py @@ -16,5 +16,3 @@ class PyLinecache2(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-pbr', type='build') - depends_on('py-fixtures', type='test') - depends_on('py-unittest2', type='test') diff --git a/var/spack/repos/builtin/packages/py-locket/package.py b/var/spack/repos/builtin/packages/py-locket/package.py index 2ef69b2992..ed0c47e0fd 100644 --- a/var/spack/repos/builtin/packages/py-locket/package.py +++ b/var/spack/repos/builtin/packages/py-locket/package.py @@ -12,6 +12,4 @@ class PyLocket(PythonPackage): homepage = "http://github.com/mwilliamson/locket.py" url = "https://pypi.io/packages/source/l/locket/locket-0.2.0.tar.gz" - import_modules = ['locket'] - version('0.2.0', sha256='1fee63c1153db602b50154684f5725564e63a0f6d09366a1cb13dffcec179fb4') diff --git a/var/spack/repos/builtin/packages/py-logilab-common/package.py b/var/spack/repos/builtin/packages/py-logilab-common/package.py index ad55892341..8e26e028d9 100644 --- a/var/spack/repos/builtin/packages/py-logilab-common/package.py +++ b/var/spack/repos/builtin/packages/py-logilab-common/package.py @@ -18,4 +18,3 @@ class PyLogilabCommon(PythonPackage): depends_on("py-setuptools", type=('build', 'run')) depends_on("py-six@1.4.0:", type=('build', 'run')) depends_on("py-unittest2@0.5.1:", type=('build', 'run'), when='^python@:2.7') - depends_on("py-pytz", type='test') diff --git a/var/spack/repos/builtin/packages/py-luigi/package.py b/var/spack/repos/builtin/packages/py-luigi/package.py index 18adbff049..cfadfde68f 100644 --- a/var/spack/repos/builtin/packages/py-luigi/package.py +++ b/var/spack/repos/builtin/packages/py-luigi/package.py @@ -19,5 +19,3 @@ class PyLuigi(PythonPackage): depends_on('py-tornado@4.0:4.99', type=('build', 'run')) depends_on('py-python-daemon@:2.1', type=('build', 'run')) depends_on('py-python-dateutil@2.7.5', when='@2.8.3:', type=('build', 'run')) - - depends_on('py-pytest@3.3.0:', type='test') diff --git a/var/spack/repos/builtin/packages/py-mako/package.py b/var/spack/repos/builtin/packages/py-mako/package.py index b60dd8d184..0a23413bac 100644 --- a/var/spack/repos/builtin/packages/py-mako/package.py +++ b/var/spack/repos/builtin/packages/py-mako/package.py @@ -17,6 +17,4 @@ class PyMako(PythonPackage): version('1.0.1', sha256='45f0869febea59dab7efd256fb451c377cbb7947bef386ff0bb44627c31a8d1c') depends_on('py-setuptools', type='build') - depends_on('py-mock', type='test') - depends_on('py-pytest', type='test') depends_on('py-markupsafe@0.9.2:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-markupsafe/package.py b/var/spack/repos/builtin/packages/py-markupsafe/package.py index f334d03cee..a1aa3b80b2 100644 --- a/var/spack/repos/builtin/packages/py-markupsafe/package.py +++ b/var/spack/repos/builtin/packages/py-markupsafe/package.py @@ -15,8 +15,6 @@ class PyMarkupsafe(PythonPackage): homepage = "http://www.pocoo.org/projects/markupsafe/" url = "https://pypi.io/packages/source/M/MarkupSafe/MarkupSafe-1.1.1.tar.gz" - import_modules = ['markupsafe'] - version('1.1.1', sha256='29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b') version('1.0', sha256='a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665') version('0.23', sha256='a4ec1aff59b95a14b45eb2e23761a0179e98319da5a7eb76b56ea8cdc7b871c3') diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py index ebb95033cf..b8589ffc59 100644 --- a/var/spack/repos/builtin/packages/py-matplotlib/package.py +++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py @@ -14,15 +14,14 @@ class PyMatplotlib(PythonPackage): url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.3.2.tar.gz" maintainers = ['adamjstewart'] - import_modules = [ - 'mpl_toolkits', 'matplotlib', 'mpl_toolkits.axes_grid1', - 'mpl_toolkits.axes_grid', 'mpl_toolkits.mplot3d', - 'mpl_toolkits.axisartist', 'matplotlib.compat', 'matplotlib.tri', - 'matplotlib.axes', 'matplotlib.sphinxext', 'matplotlib.cbook', - 'matplotlib.backends', 'matplotlib.style', 'matplotlib.projections', - 'matplotlib.testing', 'matplotlib.backends.qt_editor', - 'matplotlib.testing.jpl_units' + 'mpl_toolkits.axes_grid1', 'mpl_toolkits.axes_grid', + 'mpl_toolkits.mplot3d', 'mpl_toolkits.axisartist', 'matplotlib', + 'matplotlib.compat', 'matplotlib.tri', 'matplotlib.axes', + 'matplotlib.sphinxext', 'matplotlib.cbook', 'matplotlib.backends', + 'matplotlib.backends.qt_editor', 'matplotlib.style', + 'matplotlib.projections', 'matplotlib.testing', + 'matplotlib.testing.jpl_units', 'pylab' ] version('3.3.3', sha256='b1b60c6476c4cfe9e5cf8ab0d3127476fd3d5f05de0f343a452badaad0e4bdec') @@ -183,6 +182,8 @@ class PyMatplotlib(PythonPackage): setup.write('system_freetype = True\n') setup.write('system_qhull = True\n') + @run_after('build') + @on_package_attributes(run_tests=True) def build_test(self): pytest = which('pytest') pytest() diff --git a/var/spack/repos/builtin/packages/py-mccabe/package.py b/var/spack/repos/builtin/packages/py-mccabe/package.py index cd4c0df089..37b8f80f12 100644 --- a/var/spack/repos/builtin/packages/py-mccabe/package.py +++ b/var/spack/repos/builtin/packages/py-mccabe/package.py @@ -28,7 +28,6 @@ class PyMccabe(PythonPackage): depends_on('python@2.7:2.8,3.3:') depends_on('py-setuptools', type='build') - depends_on('py-pytest', type='test') def patch(self): """Filter pytest-runner requirement out of setup.py.""" diff --git a/var/spack/repos/builtin/packages/py-merlin/package.py b/var/spack/repos/builtin/packages/py-merlin/package.py index 199c0bcd5f..231f90a278 100644 --- a/var/spack/repos/builtin/packages/py-merlin/package.py +++ b/var/spack/repos/builtin/packages/py-merlin/package.py @@ -21,9 +21,6 @@ class PyMerlin(PythonPackage): depends_on('python@3.6:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) - - depends_on('py-pytest', type='test') - depends_on('py-cached-property', type=('build', 'run')) depends_on('py-celery@5.0.0+redis+sqlalchemy', when="@1.7.5:", type=('build', 'run')) depends_on('py-celery@4.3.0:4.999+redis+sqlalchemy', when="@:1.7.4", type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-mock/package.py b/var/spack/repos/builtin/packages/py-mock/package.py index 1f35d26020..b406da3f8d 100644 --- a/var/spack/repos/builtin/packages/py-mock/package.py +++ b/var/spack/repos/builtin/packages/py-mock/package.py @@ -23,5 +23,3 @@ class PyMock(PythonPackage): depends_on('py-six@1.7:', type=('build', 'run')) depends_on('py-six@1.9:', type=('build', 'run'), when='@2.0.0:') depends_on('py-funcsigs@1:', type=('build', 'run'), when='^python@:3.2') - depends_on('py-pytest', type='test') - depends_on('py-pytest-cov', type='test') diff --git a/var/spack/repos/builtin/packages/py-more-itertools/package.py b/var/spack/repos/builtin/packages/py-more-itertools/package.py index dba18e66b3..d21f5e57d4 100644 --- a/var/spack/repos/builtin/packages/py-more-itertools/package.py +++ b/var/spack/repos/builtin/packages/py-more-itertools/package.py @@ -12,8 +12,6 @@ class PyMoreItertools(PythonPackage): homepage = "https://github.com/erikrose/more-itertools" url = "https://pypi.io/packages/source/m/more-itertools/more-itertools-7.2.0.tar.gz" - import_modules = ['more_itertools', 'more_itertools.tests'] - version('7.2.0', sha256='409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832') version('7.0.0', sha256='c3e4748ba1aad8dba30a4886b0b1a2004f9a863837b8654e7059eebf727afa5a') version('5.0.0', sha256='38a936c0a6d98a38bcc2d03fdaaedaba9f412879461dd2ceff8d37564d6522e4') diff --git a/var/spack/repos/builtin/packages/py-msal-extensions/package.py b/var/spack/repos/builtin/packages/py-msal-extensions/package.py index 75e6740f35..5a17c1ad37 100644 --- a/var/spack/repos/builtin/packages/py-msal-extensions/package.py +++ b/var/spack/repos/builtin/packages/py-msal-extensions/package.py @@ -20,4 +20,3 @@ class PyMsalExtensions(PythonPackage): depends_on('py-msal@0.4.1:1.999', type=('build', 'run')) depends_on('py-portalocker@1.0:1.999', type=('build', 'run')) depends_on('py-pathlib2', when='@0.2:^python@:2', type=('build', 'run')) - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-mypy/package.py b/var/spack/repos/builtin/packages/py-mypy/package.py index f822ea567e..1e1d57f701 100644 --- a/var/spack/repos/builtin/packages/py-mypy/package.py +++ b/var/spack/repos/builtin/packages/py-mypy/package.py @@ -19,8 +19,3 @@ class PyMypy(PythonPackage): depends_on('py-typed-ast@1.4.0:1.4.999', type=('build', 'run')) depends_on('py-typing-extensions@3.7.4:', type=('build', 'run')) depends_on('py-mypy-extensions@0.4.0:0.4.999', type=('build', 'run')) - depends_on('py-pytest', type='test') - depends_on('py-virtualenv', type='test') - depends_on('py-pip', type='test') - depends_on('py-lxml', type='test') - depends_on('googletest', type='test') diff --git a/var/spack/repos/builtin/packages/py-nose/package.py b/var/spack/repos/builtin/packages/py-nose/package.py index fcafc521c7..a60a096f18 100644 --- a/var/spack/repos/builtin/packages/py-nose/package.py +++ b/var/spack/repos/builtin/packages/py-nose/package.py @@ -13,10 +13,6 @@ class PyNose(PythonPackage): homepage = "https://pypi.python.org/pypi/nose" url = "https://pypi.io/packages/source/n/nose/nose-1.3.4.tar.gz" - import_modules = [ - 'nose', 'nose.ext', 'nose.plugins', 'nose.sphinx', 'nose.tools' - ] - version('1.3.7', sha256='f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98') version('1.3.6', sha256='f61e0909a743eed37b1207e38a8e7b4a2fe0a82185e36f2be252ef1b3f901758') version('1.3.4', sha256='76bc63a4e2d5e5a0df77ca7d18f0f56e2c46cfb62b71103ba92a92c79fab1e03') diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py index fd09019469..106f40e76c 100644 --- a/var/spack/repos/builtin/packages/py-numpy/package.py +++ b/var/spack/repos/builtin/packages/py-numpy/package.py @@ -20,14 +20,6 @@ class PyNumpy(PythonPackage): git = "https://github.com/numpy/numpy.git" maintainers = ['adamjstewart'] - install_time_test_callbacks = ['install_test', 'import_module_test'] - - import_modules = [ - 'numpy', 'numpy.compat', 'numpy.core', 'numpy.distutils', 'numpy.doc', - 'numpy.f2py', 'numpy.fft', 'numpy.lib', 'numpy.linalg', 'numpy.ma', - 'numpy.matrixlib', 'numpy.polynomial', 'numpy.random', 'numpy.testing', - 'numpy.distutils.command', 'numpy.distutils.fcompiler' - ] version('master', branch='master') version('1.19.4', sha256='141ec3a3300ab89c7f2b0775289954d193cc8edb621ea05f99db9cb181530512') @@ -306,21 +298,8 @@ class PyNumpy(PythonPackage): return args - def build_test(self): - # `setup.py test` is not supported. Use one of the following - # instead: - # - # - `python runtests.py` (to build and test) - # - `python runtests.py --no-build` (to test installed numpy) - # - `>>> numpy.test()` (run tests for installed numpy - # from within an interpreter) - pass - + @run_after('install') + @on_package_attributes(run_tests=True) def install_test(self): - # Change directories due to the following error: - # - # ImportError: Error importing numpy: you should not try to import - # numpy from its source directory; please exit the numpy - # source tree, and relaunch your python interpreter from there. with working_dir('spack-test', create=True): python('-c', 'import numpy; numpy.test("full", verbose=2)') diff --git a/var/spack/repos/builtin/packages/py-oauthlib/package.py b/var/spack/repos/builtin/packages/py-oauthlib/package.py index 93fbb9aacc..d69ae5bc6c 100644 --- a/var/spack/repos/builtin/packages/py-oauthlib/package.py +++ b/var/spack/repos/builtin/packages/py-oauthlib/package.py @@ -22,16 +22,7 @@ class PyOauthlib(PythonPackage): variant('extras', default=True, description='Build with pyjwt, blinker, cryptography') depends_on('py-setuptools', type='build') - depends_on('py-pyjwt@1.0.0:', type=('build', 'run'), when='+extras') depends_on('py-blinker', type=('build', 'run'), when='+extras') depends_on('py-cryptography', type=('build', 'run'), when='+extras') - - depends_on('py-mock@2.0:', type='test') - depends_on('py-pytest@4.0:', type='test') - depends_on('py-pytest-cov@2.6:', type='test') - - depends_on('py-nose', type='test', when='@2.0.2') - depends_on('py-unittest2', type='test', when='^python@2.0.2') - depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-olefile/package.py b/var/spack/repos/builtin/packages/py-olefile/package.py index 4e9826b18b..34db8febe3 100644 --- a/var/spack/repos/builtin/packages/py-olefile/package.py +++ b/var/spack/repos/builtin/packages/py-olefile/package.py @@ -12,8 +12,6 @@ class PyOlefile(PythonPackage): homepage = "https://www.decalage.info/python/olefileio" url = "https://pypi.io/packages/source/o/olefile/olefile-0.44.zip" - import_modules = ['olefile'] - version('0.44', sha256='61f2ca0cd0aa77279eb943c07f607438edf374096b66332fae1ee64a6f0f73ad') depends_on('python@2.6:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-openslide-python/package.py b/var/spack/repos/builtin/packages/py-openslide-python/package.py index 371b218cb3..aa12432d50 100644 --- a/var/spack/repos/builtin/packages/py-openslide-python/package.py +++ b/var/spack/repos/builtin/packages/py-openslide-python/package.py @@ -14,8 +14,6 @@ class PyOpenslidePython(PythonPackage): version('1.1.1', sha256='33c390fe43e3d7d443fafdd66969392d3e9efd2ecd5d4af73c3dbac374485ed5') - import_modules = ['openslide'] - depends_on('openslide@3.4.0:') depends_on('python@2.6:2.8,3.3:') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-opt-einsum/package.py b/var/spack/repos/builtin/packages/py-opt-einsum/package.py index 0f430c76f8..9bf9c57fd2 100644 --- a/var/spack/repos/builtin/packages/py-opt-einsum/package.py +++ b/var/spack/repos/builtin/packages/py-opt-einsum/package.py @@ -21,6 +21,3 @@ class PyOptEinsum(PythonPackage): depends_on('python@3.5:', type=('build', 'run'), when='@3:') depends_on('py-setuptools', type='build') depends_on('py-numpy@1.7:', type=('build', 'run')) - depends_on('py-pytest', type='test') - depends_on('py-pytest-cov', type='test') - depends_on('py-pytest-pep8', type='test') diff --git a/var/spack/repos/builtin/packages/py-ordereddict/package.py b/var/spack/repos/builtin/packages/py-ordereddict/package.py index afba6ee6f3..f26d76e049 100644 --- a/var/spack/repos/builtin/packages/py-ordereddict/package.py +++ b/var/spack/repos/builtin/packages/py-ordereddict/package.py @@ -13,6 +13,4 @@ class PyOrdereddict(PythonPackage): homepage = "https://pypi.python.org/pypi/ordereddict" url = "https://pypi.io/packages/source/o/ordereddict/ordereddict-1.1.tar.gz" - import_modules = ['ordereddict'] - version('1.1', sha256='1c35b4ac206cef2d24816c89f89cf289dd3d38cf7c449bb3fab7bf6d43f01b1f') diff --git a/var/spack/repos/builtin/packages/py-oset/package.py b/var/spack/repos/builtin/packages/py-oset/package.py index 9dfb7c47db..7bbf9fac62 100644 --- a/var/spack/repos/builtin/packages/py-oset/package.py +++ b/var/spack/repos/builtin/packages/py-oset/package.py @@ -12,8 +12,6 @@ class PyOset(PythonPackage): homepage = "https://pypi.python.org/pypi/oset" url = "https://pypi.io/packages/source/o/oset/oset-0.1.3.tar.gz" - import_modules = ['oset'] - version('0.1.3', sha256='4c1fd7dec96eeff9d3260995a8e37f9f415d0bdb79975f57824e68716ac8f904') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-overpy/package.py b/var/spack/repos/builtin/packages/py-overpy/package.py index 24b3186e17..80262e03bd 100644 --- a/var/spack/repos/builtin/packages/py-overpy/package.py +++ b/var/spack/repos/builtin/packages/py-overpy/package.py @@ -17,5 +17,4 @@ class PyOverpy(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-pytest-runner', type='build') - depends_on('py-pytest', type='test') depends_on('python@2.7:2.8,3.2:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-packaging/package.py b/var/spack/repos/builtin/packages/py-packaging/package.py index 30b44d9522..89ed821735 100644 --- a/var/spack/repos/builtin/packages/py-packaging/package.py +++ b/var/spack/repos/builtin/packages/py-packaging/package.py @@ -12,22 +12,14 @@ class PyPackaging(PythonPackage): homepage = "https://github.com/pypa/packaging" url = "https://pypi.io/packages/source/p/packaging/packaging-19.2.tar.gz" - import_modules = ['packaging'] - version('19.2', sha256='28b924174df7a2fa32c1953825ff29c61e2f5e082343165438812f00d3a7fc47') version('19.1', sha256='c491ca87294da7cc01902edbe30a5bc6c4c28172b5138ab4e4aa1b9d7bfaeafe') version('19.0', sha256='0c98a5d0be38ed775798ece1b9727178c4469d9c3b4ada66e8e6b7849f8732af') version('17.1', sha256='f019b770dd64e585a99714f1fd5e01c7a8f11b45635aa953fd41c689a657375b') version('16.8', sha256='5d50835fdf0a7edf0b55e311b7c887786504efea1177abd7e69329a8e5ea619e') + depends_on('py-setuptools', type='build') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-attrs', when='@19.1', type=('build', 'run')) depends_on('py-pyparsing@2.0.2:', type=('build', 'run')) depends_on('py-six', type=('build', 'run')) - - # Newer versions of setuptools require packaging. Although setuptools is an - # optional dependency of packaging, if it is not found, setup.py will - # fallback on distutils.core instead. Don't add a setuptools dependency - # or we won't be able to bootstrap setuptools. - - # depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py index 55f5d27f0e..320d31231b 100644 --- a/var/spack/repos/builtin/packages/py-pandas/package.py +++ b/var/spack/repos/builtin/packages/py-pandas/package.py @@ -14,17 +14,19 @@ class PyPandas(PythonPackage): maintainers = ['adamjstewart'] import_modules = [ - 'pandas', 'pandas.compat', 'pandas.core', 'pandas.util', 'pandas.io', - 'pandas.tseries', 'pandas._libs', 'pandas.plotting', 'pandas.arrays', - 'pandas.api', 'pandas.errors', 'pandas._config', 'pandas.compat.numpy', + 'pandas', 'pandas.compat', 'pandas.compat.numpy', 'pandas.core', 'pandas.core.reshape', 'pandas.core.tools', 'pandas.core.util', - 'pandas.core.dtypes', 'pandas.core.groupby', 'pandas.core.internals', - 'pandas.core.computation', 'pandas.core.arrays', 'pandas.core.ops', - 'pandas.core.sparse', 'pandas.core.indexes', 'pandas.io.msgpack', - 'pandas.io.formats', 'pandas.io.excel', 'pandas.io.json', - 'pandas.io.sas', 'pandas.io.clipboard', 'pandas._libs.tslibs', - 'pandas.plotting._matplotlib', 'pandas.api.types', - 'pandas.api.extensions' + 'pandas.core.array_algos', 'pandas.core.dtypes', 'pandas.core.groupby', + 'pandas.core.internals', 'pandas.core.computation', + 'pandas.core.window', 'pandas.core.arrays', + 'pandas.core.arrays.sparse', 'pandas.core.ops', 'pandas.core.sparse', + 'pandas.core.indexes', 'pandas.util', 'pandas.io', 'pandas.io.formats', + 'pandas.io.excel', 'pandas.io.json', 'pandas.io.sas', + 'pandas.io.clipboard', 'pandas.tseries', 'pandas._libs', + 'pandas._libs.window', 'pandas._libs.tslibs', 'pandas.plotting', + 'pandas.arrays', 'pandas.api', 'pandas.api.indexers', + 'pandas.api.types', 'pandas.api.extensions', 'pandas.errors', + 'pandas._config' ] version('1.1.5', sha256='f10fc41ee3c75a474d3bdf68d396f10782d013d7f67db99c0efbfd0acb99701b') @@ -80,10 +82,3 @@ class PyPandas(PythonPackage): # Optional dependencies # https://pandas.pydata.org/pandas-docs/stable/getting_started/install.html#optional-dependencies - - # Test dependencies - # https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#running-the-test-suite - depends_on('py-pytest@4.0.2:', type='test') - depends_on('py-pytest-xdist', type='test') - depends_on('py-hypothesis@3.58:', type='test') - depends_on('py-pyarrow@0.10.0:', type='test') diff --git a/var/spack/repos/builtin/packages/py-parso/package.py b/var/spack/repos/builtin/packages/py-parso/package.py index 3f54eca9ce..cd0e93f273 100644 --- a/var/spack/repos/builtin/packages/py-parso/package.py +++ b/var/spack/repos/builtin/packages/py-parso/package.py @@ -19,5 +19,3 @@ class PyParso(PythonPackage): depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-pytest@3.0.7:', type='test') - depends_on('py-docopt', type='test') diff --git a/var/spack/repos/builtin/packages/py-partd/package.py b/var/spack/repos/builtin/packages/py-partd/package.py index 8e99413822..751968fc53 100644 --- a/var/spack/repos/builtin/packages/py-partd/package.py +++ b/var/spack/repos/builtin/packages/py-partd/package.py @@ -12,8 +12,6 @@ class PyPartd(PythonPackage): homepage = "http://github.com/dask/partd/" url = "https://pypi.io/packages/source/p/partd/partd-0.3.8.tar.gz" - import_modules = ['partd'] - version('1.1.0', sha256='6e258bf0810701407ad1410d63d1a15cfd7b773fd9efe555dac6bb82cc8832b0') version('0.3.10', sha256='33722a228ebcd1fa6f44b1631bdd4cff056376f89eb826d7d880b35b637bcfba') version('0.3.8', sha256='67291f1c4827cde3e0148b3be5d69af64b6d6169feb9ba88f0a6cfe77089400f') diff --git a/var/spack/repos/builtin/packages/py-pathlib2/package.py b/var/spack/repos/builtin/packages/py-pathlib2/package.py index 5da1abbe18..10f547ce90 100644 --- a/var/spack/repos/builtin/packages/py-pathlib2/package.py +++ b/var/spack/repos/builtin/packages/py-pathlib2/package.py @@ -12,8 +12,6 @@ class PyPathlib2(PythonPackage): homepage = "https://pypi.python.org/pypi/pathlib2" url = "https://pypi.io/packages/source/p/pathlib2/pathlib2-2.3.2.tar.gz" - import_modules = ['pathlib2'] - version('2.3.3', sha256='25199318e8cc3c25dcb45cbe084cc061051336d5a9ea2a12448d3d8cb748f742') version('2.3.2', sha256='8eb170f8d0d61825e09a95b38be068299ddeda82f35e96c3301a8a5e7604cb83') version('2.1.0', sha256='deb3a960c1d55868dfbcac98432358b92ba89d95029cddd4040db1f27405055c') diff --git a/var/spack/repos/builtin/packages/py-patsy/package.py b/var/spack/repos/builtin/packages/py-patsy/package.py index eb20c74049..6b265dbfb3 100644 --- a/var/spack/repos/builtin/packages/py-patsy/package.py +++ b/var/spack/repos/builtin/packages/py-patsy/package.py @@ -21,5 +21,3 @@ class PyPatsy(PythonPackage): depends_on('py-numpy', type=('build', 'run')) depends_on('py-scipy', type=('build', 'run'), when="+splines") depends_on('py-six', type=('build', 'run')) - - depends_on('py-nose', type='test') diff --git a/var/spack/repos/builtin/packages/py-pbr/package.py b/var/spack/repos/builtin/packages/py-pbr/package.py index 80abed9db0..27bee158f6 100644 --- a/var/spack/repos/builtin/packages/py-pbr/package.py +++ b/var/spack/repos/builtin/packages/py-pbr/package.py @@ -22,19 +22,3 @@ class PyPbr(PythonPackage): depends_on('python@2.6:', type=('build', 'run')) depends_on('py-setuptools', type='build') - - # test-requirements.txt - depends_on('py-wheel@0.32.0:', type='test') - depends_on('py-fixtures@3.0.0:', type='test') - depends_on('py-hacking@0.12.0:0.12.999,0.13.1:0.13.999', type='test') - depends_on('py-mock@2.0.0:', type='test') - depends_on('py-six@1.10.0:', type='test') - depends_on('py-stestr@2.1.0:', type='test') - depends_on('py-testresources@2.0.0:', type='test') - depends_on('py-testscenarios@0.4:', type='test') - depends_on('py-testtools@2.2.0:', type='test') - depends_on('py-virtualenv@14.0.6:', type='test') - depends_on('py-coverage@4.0:4.3,4.5:', type='test') - depends_on('py-sphinx@1.6.2:1.6.5,1.6.8:1.999', when='^python@:2', type='test') - depends_on('py-sphinx@1.6.2:1.6.5,1.6.8:', type='test') - depends_on('py-testrepository@0.0.18:', type='test') diff --git a/var/spack/repos/builtin/packages/py-pep8/package.py b/var/spack/repos/builtin/packages/py-pep8/package.py index d1eaa13470..ab5c65c5d2 100644 --- a/var/spack/repos/builtin/packages/py-pep8/package.py +++ b/var/spack/repos/builtin/packages/py-pep8/package.py @@ -12,8 +12,6 @@ class PyPep8(PythonPackage): homepage = "https://pep8.readthedocs.org/" url = "https://pypi.io/packages/source/p/pep8/pep8-1.7.1.tar.gz" - import_modules = ['pep8'] - version('1.7.1', sha256='fe249b52e20498e59e0b5c5256aa52ee99fc295b26ec9eaa85776ffdb9fe6374') depends_on('py-setuptools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pillow/package.py b/var/spack/repos/builtin/packages/py-pillow/package.py index 5ff2621c2d..c12b35deb5 100644 --- a/var/spack/repos/builtin/packages/py-pillow/package.py +++ b/var/spack/repos/builtin/packages/py-pillow/package.py @@ -7,7 +7,6 @@ class PyPillowBase(PythonPackage): """Base class for Pillow and its fork Pillow-SIMD.""" maintainers = ['adamjstewart'] - import_modules = ['PIL'] provides('pil') @@ -36,9 +35,6 @@ class PyPillowBase(PythonPackage): depends_on('python@2.6:2.8,3.2:3.5', when='@2:3', type=('build', 'run')) depends_on('python@2.4:2.7', when='@:1', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-pytest', type='test') - depends_on('py-pytest-runner', type='test') - depends_on('imagemagick', type='test') # Optional dependencies depends_on('zlib', when='+zlib') @@ -98,8 +94,6 @@ class PyPillowBase(PythonPackage): env.set('MAX_CONCURRENCY', str(make_jobs)) # Tests need to be re-added since `phases` was overridden - run_after('build_ext')( - PythonPackage._run_default_build_time_test_callbacks) run_after('install')( PythonPackage._run_default_install_time_test_callbacks) run_after('install')(PythonPackage.sanity_check_prefix) diff --git a/var/spack/repos/builtin/packages/py-pkgconfig/package.py b/var/spack/repos/builtin/packages/py-pkgconfig/package.py index f519422138..550a936dcb 100644 --- a/var/spack/repos/builtin/packages/py-pkgconfig/package.py +++ b/var/spack/repos/builtin/packages/py-pkgconfig/package.py @@ -19,7 +19,4 @@ class PyPkgconfig(PythonPackage): depends_on('python@2.6:2.8,3.3:', type=('build', 'run')) depends_on('python@2.7:2.8,3.3:', when='@1.5:', type=('build', 'run')) depends_on('py-setuptools', when='@:1.4', type=('build', 'run')) - depends_on('pkgconfig', type=('build', 'run')) - - depends_on('py-nose@1.0:', type=('build', 'test')) diff --git a/var/spack/repos/builtin/packages/py-pkginfo/package.py b/var/spack/repos/builtin/packages/py-pkginfo/package.py index ed00f37a5d..366f4a9471 100644 --- a/var/spack/repos/builtin/packages/py-pkginfo/package.py +++ b/var/spack/repos/builtin/packages/py-pkginfo/package.py @@ -15,5 +15,3 @@ class PyPkginfo(PythonPackage): version('1.5.0.1', sha256='7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb') depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-nose', type='test') - depends_on('py-coverage', type='test') diff --git a/var/spack/repos/builtin/packages/py-planet/package.py b/var/spack/repos/builtin/packages/py-planet/package.py index 89b888097e..617c0e8efc 100644 --- a/var/spack/repos/builtin/packages/py-planet/package.py +++ b/var/spack/repos/builtin/packages/py-planet/package.py @@ -14,9 +14,6 @@ class PyPlanet(PythonPackage): version('1.4.6', sha256='43ff6a765f465302f500aaf65b81a46ac6aad7bb42899e4a7543bdc293d4ca0d') depends_on('py-setuptools', type='build') - depends_on('py-mock', type='test') - depends_on('py-pytest', type='test') - depends_on('py-requests-mock', type='test') depends_on('py-click', type=('build', 'run')) depends_on('py-requests', type=('build', 'run')) depends_on('py-requests-futures@0.9.7', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pluggy/package.py b/var/spack/repos/builtin/packages/py-pluggy/package.py index 1e2fb3f2bd..41a6780e41 100644 --- a/var/spack/repos/builtin/packages/py-pluggy/package.py +++ b/var/spack/repos/builtin/packages/py-pluggy/package.py @@ -12,8 +12,6 @@ class PyPluggy(PythonPackage): homepage = "https://github.com/pytest-dev/pluggy" url = "https://pypi.io/packages/source/p/pluggy/pluggy-0.13.0.tar.gz" - import_modules = ['pluggy'] - version('0.13.0', sha256='fa5fa1622fa6dd5c030e9cad086fa19ef6a0cf6d7a2d12318e10cb49d6d68f34') version('0.12.0', sha256='0825a152ac059776623854c1543d65a4ad408eb3d33ee114dff91e57ec6ae6fc') version('0.7.1', sha256='95eb8364a4708392bae89035f45341871286a333f749c3141c20573d2b3876e1') diff --git a/var/spack/repos/builtin/packages/py-preshed/package.py b/var/spack/repos/builtin/packages/py-preshed/package.py index cb8cc2ed10..1798c1fbdc 100644 --- a/var/spack/repos/builtin/packages/py-preshed/package.py +++ b/var/spack/repos/builtin/packages/py-preshed/package.py @@ -15,4 +15,3 @@ class PyPreshed(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-cymem@2.0.2:2.0.999', type=('build', 'run')) depends_on('py-murmurhash@0.28:1.0', type=('build', 'run')) - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-projectq/package.py b/var/spack/repos/builtin/packages/py-projectq/package.py index d22a51584f..d1f9efc2a0 100644 --- a/var/spack/repos/builtin/packages/py-projectq/package.py +++ b/var/spack/repos/builtin/packages/py-projectq/package.py @@ -19,11 +19,6 @@ class PyProjectq(PythonPackage): homepage = "https://projectq.ch" git = "https://github.com/projectq-framework/projectq.git" - # Provided python modules - import_modules = ['projectq', 'projectq.backends', 'projectq.cengines', - 'projectq.libs', 'projectq.meta', 'projectq.ops', - 'projectq.setups', 'projectq.types'] - # Versions version('develop', branch='develop') version('0.3.6', commit='fa484fe037a3a1772127bbd00fe4628ddba34611') @@ -33,7 +28,6 @@ class PyProjectq(PythonPackage): depends_on('py-numpy', type=('build', 'run')) depends_on('py-scipy', type=('build', 'run')) depends_on('py-future', type=('build', 'run')) - depends_on('py-pytest@3.1.0:', type=('test')) depends_on('py-requests', type=('build', 'run')) # conflict with pybind11@2.2.0 -> see requirements.txt depends_on('py-pybind11@1.7:2.1,2.2.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-prometheus-client/package.py b/var/spack/repos/builtin/packages/py-prometheus-client/package.py index 86733359cf..afb0f282e1 100644 --- a/var/spack/repos/builtin/packages/py-prometheus-client/package.py +++ b/var/spack/repos/builtin/packages/py-prometheus-client/package.py @@ -20,3 +20,15 @@ class PyPrometheusClient(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-twisted', type=('build', 'run'), when='+twisted') + + @property + def import_modules(self): + modules = [ + 'prometheus_client', 'prometheus_client.openmetrics', + 'prometheus_client.bridge' + ] + + if '+twisted' in self.spec: + modules.append('prometheus_client.twisted') + + return modules diff --git a/var/spack/repos/builtin/packages/py-psutil/package.py b/var/spack/repos/builtin/packages/py-psutil/package.py index ba64a0e0eb..70f898de39 100644 --- a/var/spack/repos/builtin/packages/py-psutil/package.py +++ b/var/spack/repos/builtin/packages/py-psutil/package.py @@ -23,6 +23,3 @@ class PyPsutil(PythonPackage): depends_on('python@2.6:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-unittest2', when='^python@:2.6', type='test') - depends_on('py-mock', when='^python@:2.7', type='test') - depends_on('py-ipaddress', when='^python@:3.2', type='test') diff --git a/var/spack/repos/builtin/packages/py-py/package.py b/var/spack/repos/builtin/packages/py-py/package.py index 995612d20a..e7320a0124 100644 --- a/var/spack/repos/builtin/packages/py-py/package.py +++ b/var/spack/repos/builtin/packages/py-py/package.py @@ -12,11 +12,6 @@ class PyPy(PythonPackage): homepage = "http://pylib.readthedocs.io/en/latest/" url = "https://pypi.io/packages/source/p/py/py-1.8.0.tar.gz" - import_modules = [ - 'py', 'py._process', 'py._vendored_packages', 'py._path', - 'py._log', 'py._code', 'py._io' - ] - version('1.8.0', sha256='dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53') version('1.5.4', sha256='3fd59af7435864e1a243790d322d763925431213b6b8529c6ca71081ace3bbf7') version('1.5.3', sha256='29c9fab495d7528e80ba1e343b958684f4ace687327e6f789a94bf3d1915f881') @@ -27,7 +22,3 @@ class PyPy(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-setuptools-scm', type='build') - - def build_test(self): - # Tests require pytest, creating a circular dependency - pass diff --git a/var/spack/repos/builtin/packages/py-py2cairo/package.py b/var/spack/repos/builtin/packages/py-py2cairo/package.py index 5c492a9167..b8ab752c5f 100644 --- a/var/spack/repos/builtin/packages/py-py2cairo/package.py +++ b/var/spack/repos/builtin/packages/py-py2cairo/package.py @@ -23,6 +23,8 @@ class PyPy2cairo(WafPackage): depends_on('py-pytest', type='test') + @run_after('install') + @on_package_attributes(run_tests=True) def install_test(self): with working_dir('test'): pytest = which('py.test') diff --git a/var/spack/repos/builtin/packages/py-py4j/package.py b/var/spack/repos/builtin/packages/py-py4j/package.py index e67f5a3ec7..e291dac918 100644 --- a/var/spack/repos/builtin/packages/py-py4j/package.py +++ b/var/spack/repos/builtin/packages/py-py4j/package.py @@ -19,4 +19,3 @@ class PyPy4j(PythonPackage): version('0.10.3', sha256='f4570108ad014dd52a65c2288418e31cb8227b5ecc39ad7fc7fe98314f7a26f2') depends_on('py-setuptools', type='build') - depends_on('py-nose@1.3.7:', type='test') diff --git a/var/spack/repos/builtin/packages/py-pyarrow/package.py b/var/spack/repos/builtin/packages/py-pyarrow/package.py index 3f8c3f640e..0e1c73909e 100644 --- a/var/spack/repos/builtin/packages/py-pyarrow/package.py +++ b/var/spack/repos/builtin/packages/py-pyarrow/package.py @@ -31,11 +31,6 @@ class PyPyarrow(PythonPackage, CudaPackage): depends_on('py-setuptools-scm', type='build', when='@0.15.0:') depends_on('py-cython', type='build') depends_on('py-cython@0.29:', type='build', when='@0.15.0:') - depends_on('py-pytest-runner', type='test', when='@0.17:') - depends_on('py-pytest', type='test', when='@0.15.0:') - depends_on('py-pandas', type='test', when='@0.15.0:') - depends_on('py-hypothesis', type='test', when='@0.15.0:') - depends_on('py-pathlib2', type='test', when='@0.15.0: ^python@:3.3.99') depends_on('py-numpy@1.14:', type=('build', 'run'), when='@0.15.0:') depends_on('py-six@1.0.0:', type=('build', 'run'), when='@0.15.0:') depends_on('py-futures', type=('build', 'run'), when='@0.15.0:^python@:3.1.99') diff --git a/var/spack/repos/builtin/packages/py-pybind11/package.py b/var/spack/repos/builtin/packages/py-pybind11/package.py index 92db96105a..bf9ff13fd0 100644 --- a/var/spack/repos/builtin/packages/py-pybind11/package.py +++ b/var/spack/repos/builtin/packages/py-pybind11/package.py @@ -36,7 +36,6 @@ class PyPybind11(CMakePackage): version('2.1.1', sha256='f2c6874f1ea5b4ad4ffffe352413f7d2cd1a49f9050940805c2a082348621540') version('2.1.0', sha256='2860f2b8d0c9f65f0698289a161385f59d099b7ead1bf64e8993c486f2b93ee0') - depends_on('py-pytest', type='test') depends_on('py-setuptools', type='build') extends('python') diff --git a/var/spack/repos/builtin/packages/py-pybtex-docutils/package.py b/var/spack/repos/builtin/packages/py-pybtex-docutils/package.py index ba93a2a994..c2df3bf8ee 100644 --- a/var/spack/repos/builtin/packages/py-pybtex-docutils/package.py +++ b/var/spack/repos/builtin/packages/py-pybtex-docutils/package.py @@ -12,8 +12,6 @@ class PyPybtexDocutils(PythonPackage): homepage = "https://pypi.python.org/pypi/pybtex-docutils/" url = "https://pypi.io/packages/source/p/pybtex-docutils/pybtex-docutils-0.2.1.tar.gz" - import_modules = ['pybtex_docutils'] - version('0.2.1', sha256='e4b075641c1d68a3e98a6d73ad3d029293fcf9e0773512315ef9c8482f251337') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pybtex/package.py b/var/spack/repos/builtin/packages/py-pybtex/package.py index 56bfb42a50..2df63fbd46 100644 --- a/var/spack/repos/builtin/packages/py-pybtex/package.py +++ b/var/spack/repos/builtin/packages/py-pybtex/package.py @@ -14,18 +14,6 @@ class PyPybtex(PythonPackage): homepage = "https://pybtex.org" url = "https://pypi.io/packages/source/P/Pybtex/pybtex-0.21.tar.gz" - import_modules = [ - 'custom_fixers', 'pybtex', 'pybtex.style', 'pybtex.tests', - 'pybtex.database', 'pybtex.backends', 'pybtex.bibtex', - 'pybtex.charwidths', 'pybtex.markup', 'pybtex.plugin', - 'pybtex.style.sorting', 'pybtex.style.names', - 'pybtex.style.labels', 'pybtex.style.formatting', - 'pybtex.tests.database_test', 'pybtex.tests.bst_parser_test', - 'pybtex.tests.data', 'pybtex.database.output', - 'pybtex.database.input', 'pybtex.database.format', - 'pybtex.database.convert' - ] - version('0.21', sha256='af8a6c7c74954ad305553b118d2757f68bc77c5dd5d5de2cc1fd16db90046000') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pycparser/package.py b/var/spack/repos/builtin/packages/py-pycparser/package.py index 6d8c217e91..6eef675ba4 100644 --- a/var/spack/repos/builtin/packages/py-pycparser/package.py +++ b/var/spack/repos/builtin/packages/py-pycparser/package.py @@ -12,8 +12,6 @@ class PyPycparser(PythonPackage): homepage = "https://github.com/eliben/pycparser" url = "https://pypi.io/packages/source/p/pycparser/pycparser-2.19.tar.gz" - import_modules = ['pycparser', 'pycparser.ply'] - version('2.20', sha256='2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0') version('2.19', sha256='a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3') version('2.18', sha256='99a8ca03e29851d96616ad0404b4aad7d9ee16f25c9f9708a11faf2810f7b226') diff --git a/var/spack/repos/builtin/packages/py-pycuda/package.py b/var/spack/repos/builtin/packages/py-pycuda/package.py index a5f2153d9d..544c739d23 100644 --- a/var/spack/repos/builtin/packages/py-pycuda/package.py +++ b/var/spack/repos/builtin/packages/py-pycuda/package.py @@ -27,5 +27,3 @@ class PyPycuda(PythonPackage): depends_on('py-mako', type='run') depends_on('cuda@:8.0.61', when='@2016.1.2') - - depends_on('py-pytest@2:', type='test') diff --git a/var/spack/repos/builtin/packages/py-pydotplus/package.py b/var/spack/repos/builtin/packages/py-pydotplus/package.py index 07370cbc1c..ccea3438cf 100644 --- a/var/spack/repos/builtin/packages/py-pydotplus/package.py +++ b/var/spack/repos/builtin/packages/py-pydotplus/package.py @@ -18,7 +18,6 @@ class PyPydotplus(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-pyparsing@2.0.1:', type=('build', 'run')) - depends_on('py-pytest', type='test') depends_on('py-sphinx', type='build', when='+docs') depends_on('py-sphinx-rtd-theme', type='build', when='+docs') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pygments/package.py b/var/spack/repos/builtin/packages/py-pygments/package.py index d7559b36d8..585a3b2cbb 100644 --- a/var/spack/repos/builtin/packages/py-pygments/package.py +++ b/var/spack/repos/builtin/packages/py-pygments/package.py @@ -12,11 +12,6 @@ class PyPygments(PythonPackage): homepage = "http://pygments.org/" url = "https://pypi.io/packages/source/P/Pygments/Pygments-2.4.2.tar.gz" - import_modules = [ - 'pygments', 'pygments.filters', 'pygments.formatters', - 'pygments.lexers', 'pygments.styles' - ] - version('2.6.1', sha256='647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44') version('2.4.2', sha256='881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297') version('2.3.1', sha256='5ffada19f6203563680669ee7f53b64dabbeb100eb51b61996085e99c03b284a') @@ -28,7 +23,3 @@ class PyPygments(PythonPackage): depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@:2.5') depends_on('python@3.5:', type=('build', 'run'), when='@2.6:') depends_on('py-setuptools', type=('build', 'run')) - - def build_test(self): - # Unit tests require sphinx, but that creates a circular dependency - pass diff --git a/var/spack/repos/builtin/packages/py-pyinstrument-cext/package.py b/var/spack/repos/builtin/packages/py-pyinstrument-cext/package.py index 4eb2f799c1..970f5c5f16 100644 --- a/var/spack/repos/builtin/packages/py-pyinstrument-cext/package.py +++ b/var/spack/repos/builtin/packages/py-pyinstrument-cext/package.py @@ -15,4 +15,3 @@ class PyPyinstrumentCext(PythonPackage): version('0.2.2', sha256='f29e25f71d74c0415ca9310e5567fff0f5d29f4240a09a885abf8b0eed71cc5b') depends_on('py-setuptools', type='build') - depends_on('py-nose', type='test') diff --git a/var/spack/repos/builtin/packages/py-pyinstrument/package.py b/var/spack/repos/builtin/packages/py-pyinstrument/package.py index ffc4c9ef0b..8acd33773e 100644 --- a/var/spack/repos/builtin/packages/py-pyinstrument/package.py +++ b/var/spack/repos/builtin/packages/py-pyinstrument/package.py @@ -19,4 +19,3 @@ class PyPyinstrument(PythonPackage): depends_on('py-pytest-runner', type='build') depends_on('npm', type='build') depends_on('py-pyinstrument-cext@0.2.2:', type=('build', 'run')) - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-pyjwt/package.py b/var/spack/repos/builtin/packages/py-pyjwt/package.py index a8006ef623..fa76c2a39a 100644 --- a/var/spack/repos/builtin/packages/py-pyjwt/package.py +++ b/var/spack/repos/builtin/packages/py-pyjwt/package.py @@ -19,6 +19,3 @@ class PyPyjwt(PythonPackage): depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') depends_on('py-cryptography@1.4:', when='+crypto', type=('build', 'run')) - depends_on('py-pytest@4.0.1:4.99.99', type='test') - depends_on('py-pytest-cov@2.6.0:2.99.99', type='test') - depends_on('py-pytest-runner@4.2:4.99', type='test') diff --git a/var/spack/repos/builtin/packages/py-pykml/package.py b/var/spack/repos/builtin/packages/py-pykml/package.py index bfa1359ebf..38a47c94de 100644 --- a/var/spack/repos/builtin/packages/py-pykml/package.py +++ b/var/spack/repos/builtin/packages/py-pykml/package.py @@ -19,4 +19,3 @@ class PyPykml(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-lxml@2.2.6:', type=('build', 'run')) - depends_on('py-nose', type='test') diff --git a/var/spack/repos/builtin/packages/py-pynn/package.py b/var/spack/repos/builtin/packages/py-pynn/package.py index 12304f9c9c..85d22a9dd5 100644 --- a/var/spack/repos/builtin/packages/py-pynn/package.py +++ b/var/spack/repos/builtin/packages/py-pynn/package.py @@ -30,5 +30,3 @@ class PyPynn(PythonPackage): depends_on('py-neo@0.3:0.4.1', type=('build', 'run'), when="@:0.8.3") depends_on('py-neo@0.5.0:', type=('build', 'run'), when="@0.9.0:") - - depends_on('py-mock@1.0:', type='test') diff --git a/var/spack/repos/builtin/packages/py-pyparsing/package.py b/var/spack/repos/builtin/packages/py-pyparsing/package.py index ea7efac809..bb22f34c20 100644 --- a/var/spack/repos/builtin/packages/py-pyparsing/package.py +++ b/var/spack/repos/builtin/packages/py-pyparsing/package.py @@ -11,8 +11,6 @@ class PyPyparsing(PythonPackage): homepage = "http://pyparsing.wikispaces.com/" url = "https://pypi.io/packages/source/p/pyparsing/pyparsing-2.4.2.tar.gz" - import_modules = ['pyparsing'] - version('2.4.2', sha256='6f98a7b9397e206d78cc01df10131398f1c8b8510a2f4d97d9abd82e1aacdd80') version('2.4.0', sha256='1873c03321fc118f4e9746baf201ff990ceb915f433f23b395f5580d1840cb2a') version('2.3.1', sha256='66c9268862641abcac4a96ba74506e594c884e3f57690a696d21ad8210ed667a') diff --git a/var/spack/repos/builtin/packages/py-pyprecice/package.py b/var/spack/repos/builtin/packages/py-pyprecice/package.py index 36cb9957f5..8636fbb586 100644 --- a/var/spack/repos/builtin/packages/py-pyprecice/package.py +++ b/var/spack/repos/builtin/packages/py-pyprecice/package.py @@ -26,9 +26,6 @@ class PyPyprecice(PythonPackage): version("2.0.0.2", sha256="5f055d809d65ec2e81f4d001812a250f50418de59990b47d6bcb12b88da5f5d7") version("2.0.0.1", sha256="96eafdf421ec61ad6fcf0ab1d3cf210831a815272984c470b2aea57d4d0c9e0e") - # Import module as a test - import_modules = ["precice"] - patch("deactivate-version-check-via-pip.patch") variant("mpi", default=True, description="Enables MPI support") diff --git a/var/spack/repos/builtin/packages/py-pyproj/package.py b/var/spack/repos/builtin/packages/py-pyproj/package.py index dfc0edf924..7c4e2eb80c 100644 --- a/var/spack/repos/builtin/packages/py-pyproj/package.py +++ b/var/spack/repos/builtin/packages/py-pyproj/package.py @@ -14,7 +14,6 @@ class PyPyproj(PythonPackage): git = "https://github.com/pyproj4/pyproj.git" maintainers = ['citibeth', 'adamjstewart'] - import_modules = ['pyproj'] version('2.6.0', sha256='977542d2f8cf2981cf3ad72cedfebcd6ac56977c7aa830d9b49fa7888b56e83d') version('2.2.0', sha256='0a4f793cc93539c2292638c498e24422a2ec4b25cb47545addea07724b2a56e5') diff --git a/var/spack/repos/builtin/packages/py-pyqt4/package.py b/var/spack/repos/builtin/packages/py-pyqt4/package.py index 5405911401..bd2b8f9cc9 100644 --- a/var/spack/repos/builtin/packages/py-pyqt4/package.py +++ b/var/spack/repos/builtin/packages/py-pyqt4/package.py @@ -16,13 +16,6 @@ class PyPyqt4(SIPPackage): url = "http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.12.3/PyQt4_gpl_x11-4.12.3.tar.gz" sip_module = 'PyQt4.sip' - import_modules = [ - 'PyQt4', 'PyQt4.Qt', 'PyQt4.QtCore', 'PyQt4.QtDeclarative', - 'PyQt4.QtDesigner', 'PyQt4.QtGui', 'PyQt4.QtHelp', - 'PyQt4.QtMultimedia', 'PyQt4.QtNetwork', 'PyQt4.QtOpenGL', - 'PyQt4.QtScript', 'PyQt4.QtScriptTools', 'PyQt4.QtSql', 'PyQt4.QtSvg', - 'PyQt4.QtTest', 'PyQt4.QtWebKit', 'PyQt4.QtXml', 'PyQt4.QtXmlPatterns' - ] version('4.12.3', sha256='a00f5abef240a7b5852b7924fa5fdf5174569525dc076cd368a566619e56d472') version('4.11.3', sha256='853780dcdbe2e6ba785d703d059b096e1fc49369d3e8d41a060be874b8745686', diff --git a/var/spack/repos/builtin/packages/py-pyqt5/package.py b/var/spack/repos/builtin/packages/py-pyqt5/package.py index e26c66a891..2770ffe20d 100644 --- a/var/spack/repos/builtin/packages/py-pyqt5/package.py +++ b/var/spack/repos/builtin/packages/py-pyqt5/package.py @@ -16,14 +16,6 @@ class PyPyqt5(SIPPackage): list_url = "https://www.riverbankcomputing.com/software/pyqt/download5" sip_module = 'PyQt5.sip' - import_modules = [ - 'PyQt5', 'PyQt5.QtCore', 'PyQt5.QtGui', 'PyQt5.QtHelp', - 'PyQt5.QtMultimedia', 'PyQt5.QtMultimediaWidgets', 'PyQt5.QtNetwork', - 'PyQt5.QtOpenGL', 'PyQt5.QtPrintSupport', 'PyQt5.QtQml', - 'PyQt5.QtQuick', 'PyQt5.QtSvg', 'PyQt5.QtTest', 'PyQt5.QtWebChannel', - 'PyQt5.QtWebSockets', 'PyQt5.QtWidgets', 'PyQt5.QtXml', - 'PyQt5.QtXmlPatterns' - ] version('5.13.1', sha256='54b7f456341b89eeb3930e786837762ea67f235e886512496c4152ebe106d4af') version('5.13.0', sha256='0cdbffe5135926527b61cc3692dd301cd0328dd87eeaf1313e610787c46faff9') diff --git a/var/spack/repos/builtin/packages/py-pysocks/package.py b/var/spack/repos/builtin/packages/py-pysocks/package.py index 200902f536..2a37391e63 100644 --- a/var/spack/repos/builtin/packages/py-pysocks/package.py +++ b/var/spack/repos/builtin/packages/py-pysocks/package.py @@ -18,5 +18,3 @@ class PyPysocks(PythonPackage): depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-psutil', type='test') - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-pytest-httpbin/package.py b/var/spack/repos/builtin/packages/py-pytest-httpbin/package.py index 5e270bf4df..241828a977 100644 --- a/var/spack/repos/builtin/packages/py-pytest-httpbin/package.py +++ b/var/spack/repos/builtin/packages/py-pytest-httpbin/package.py @@ -23,4 +23,3 @@ class PyPytestHttpbin(PythonPackage): depends_on('py-decorator', when='@:0.2', type=('build', 'run')) depends_on('py-httpbin', type=('build', 'run')) depends_on('py-six', type=('build', 'run')) - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-pytest-isort/package.py b/var/spack/repos/builtin/packages/py-pytest-isort/package.py index d55b9550e2..2218d5debf 100644 --- a/var/spack/repos/builtin/packages/py-pytest-isort/package.py +++ b/var/spack/repos/builtin/packages/py-pytest-isort/package.py @@ -11,7 +11,6 @@ class PyPytestIsort(PythonPackage): homepage = "http://github.com/moccu/pytest-isort/" url = "https://pypi.io/packages/source/p/pytest-isort/pytest-isort-0.3.1.tar.gz" - import_modules = ['pytest_isort'] version('0.3.1', sha256='4bfee60dad1870b51700d55a85f5ceda766bd9d3d2878c1bbabee80e61b1be1a') diff --git a/var/spack/repos/builtin/packages/py-pytest-pep8/package.py b/var/spack/repos/builtin/packages/py-pytest-pep8/package.py index f365a172eb..eb8ae7d974 100644 --- a/var/spack/repos/builtin/packages/py-pytest-pep8/package.py +++ b/var/spack/repos/builtin/packages/py-pytest-pep8/package.py @@ -12,8 +12,6 @@ class PyPytestPep8(PythonPackage): homepage = "https://bitbucket.org/pytest-dev/pytest-pep8" url = "https://pypi.io/packages/source/p/pytest-pep8/pytest-pep8-1.0.6.tar.gz" - import_modules = ['pytest_pep8'] - version('1.0.6', sha256='032ef7e5fa3ac30f4458c73e05bb67b0f036a8a5cb418a534b3170f89f120318') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pytest-runner/package.py b/var/spack/repos/builtin/packages/py-pytest-runner/package.py index d3337bcac9..79135892f6 100644 --- a/var/spack/repos/builtin/packages/py-pytest-runner/package.py +++ b/var/spack/repos/builtin/packages/py-pytest-runner/package.py @@ -12,8 +12,6 @@ class PyPytestRunner(PythonPackage): homepage = "https://github.com/pytest-dev/pytest-runner" url = "https://pypi.io/packages/source/p/pytest-runner/pytest-runner-5.1.tar.gz" - import_modules = ['ptr'] - version('5.1', sha256='25a013c8d84f0ca60bb01bd11913a3bcab420f601f0f236de4423074af656e7a') version('2.11.1', sha256='983a31eab45e375240e250161a556163bc8d250edaba97960909338c273a89b3') diff --git a/var/spack/repos/builtin/packages/py-pytest/package.py b/var/spack/repos/builtin/packages/py-pytest/package.py index b6d2c914c5..696aa573c2 100644 --- a/var/spack/repos/builtin/packages/py-pytest/package.py +++ b/var/spack/repos/builtin/packages/py-pytest/package.py @@ -12,8 +12,6 @@ class PyPytest(PythonPackage): homepage = "http://pytest.org/" url = "https://pypi.io/packages/source/p/pytest/pytest-5.2.1.tar.gz" - import_modules = ['pytest'] - version('5.3.4', sha256='1d122e8be54d1a709e56f82e2d85dcba3018313d64647f38a91aec88c239b600') version('5.2.1', sha256='ca563435f4941d0cb34767301c27bc65c510cb82e90b9ecf9cb52dc2c63caaa0') version('5.1.1', sha256='c3d5020755f70c82eceda3feaf556af9a341334414a8eca521a18f463bcead88') diff --git a/var/spack/repos/builtin/packages/py-python-dateutil/package.py b/var/spack/repos/builtin/packages/py-python-dateutil/package.py index 16bff6858d..cf8ea1f90d 100644 --- a/var/spack/repos/builtin/packages/py-python-dateutil/package.py +++ b/var/spack/repos/builtin/packages/py-python-dateutil/package.py @@ -12,10 +12,6 @@ class PyPythonDateutil(PythonPackage): homepage = "https://dateutil.readthedocs.io/" url = "https://pypi.io/packages/source/p/python-dateutil/python-dateutil-2.8.0.tar.gz" - import_modules = [ - 'dateutil', 'dateutil.zoneinfo', 'dateutil.parser', 'dateutil.tz' - ] - version('2.8.0', sha256='c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e') version('2.7.5', sha256='88f9287c0174266bb0d8cedd395cfba9c58e87e5ad86b2ce58859bc11be3cf02') version('2.5.2', sha256='063907ef47f6e187b8fe0728952e4effb587a34f2dc356888646f9b71fbb2e4b') @@ -27,13 +23,3 @@ class PyPythonDateutil(PythonPackage): depends_on('py-setuptools@24.3:', type='build') depends_on('py-setuptools-scm', type='build', when='@2.7.0:') depends_on('py-six@1.5:', type=('build', 'run')) - # depends_on('py-pytest', type='test') - # depends_on('py-hypothesis', type='test') - # depends_on('py-freezegun', type='test') - - def build_test(self): - # Tests require freezegun, which depends on python-dateutil, - # creating circular dependency - # pytest = which('pytest') - # pytest() - pass diff --git a/var/spack/repos/builtin/packages/py-python-swiftclient/package.py b/var/spack/repos/builtin/packages/py-python-swiftclient/package.py index a016686406..a8f24784be 100644 --- a/var/spack/repos/builtin/packages/py-python-swiftclient/package.py +++ b/var/spack/repos/builtin/packages/py-python-swiftclient/package.py @@ -14,8 +14,6 @@ class PyPythonSwiftclient(PythonPackage): maintainers = ['ajkotobi'] - import_modules = ['sys', 'setuptools', 'requests'] - version('3.10.0', sha256='66227eaf29a691c70675fb9982022980b92797c273dd5e6dc7e680425e9a3634') version('3.9.0', sha256='4f2097492e4c76e948882fc859bfa033ade09bed72f8e6b328e34a3467d9a377') version('3.8.1', sha256='3a013303643f77a99befa05582dfb93671e1fba1aed9f4a517418129700aedb8') diff --git a/var/spack/repos/builtin/packages/py-python-utils/package.py b/var/spack/repos/builtin/packages/py-python-utils/package.py index 6c8e3aa732..e192c67cc9 100644 --- a/var/spack/repos/builtin/packages/py-python-utils/package.py +++ b/var/spack/repos/builtin/packages/py-python-utils/package.py @@ -19,5 +19,3 @@ class PyPythonUtils(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-six', type=('build', 'run')) - depends_on('py-pytest', type='test') - depends_on('py-pytest-runner', type='test') diff --git a/var/spack/repos/builtin/packages/py-pytz/package.py b/var/spack/repos/builtin/packages/py-pytz/package.py index d4d752fdaa..601509d9ba 100644 --- a/var/spack/repos/builtin/packages/py-pytz/package.py +++ b/var/spack/repos/builtin/packages/py-pytz/package.py @@ -12,8 +12,6 @@ class PyPytz(PythonPackage): homepage = "http://pythonhosted.org/pytz" url = "https://pypi.io/packages/source/p/pytz/pytz-2019.3.tar.gz" - import_modules = ['pytz'] - version('2020.1', sha256='c35965d010ce31b23eeb663ed3cc8c906275d6be1a34393a1d73a41febf4a048') version('2019.3', sha256='b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be') version('2019.1', sha256='d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141') diff --git a/var/spack/repos/builtin/packages/py-pywavelets/package.py b/var/spack/repos/builtin/packages/py-pywavelets/package.py index 460c6011e7..91d077d13e 100644 --- a/var/spack/repos/builtin/packages/py-pywavelets/package.py +++ b/var/spack/repos/builtin/packages/py-pywavelets/package.py @@ -17,8 +17,6 @@ class PyPywavelets(PythonPackage): version('1.1.1', sha256='1a64b40f6acb4ffbaccce0545d7fc641744f95351f62e4c6aaa40549326008c9') version('0.5.2', sha256='ce36e2f0648ea1781490b09515363f1f64446b0eac524603e5db5e180113bed9') - import_modules = ['pywt', 'pywt.data'] - depends_on('python@3.5:', type=('build', 'run'), when='@1.1.1:') depends_on('py-setuptools', type='build') depends_on('py-cython', type='build') diff --git a/var/spack/repos/builtin/packages/py-pyyaml/package.py b/var/spack/repos/builtin/packages/py-pyyaml/package.py index 00b3d848b7..419282250f 100644 --- a/var/spack/repos/builtin/packages/py-pyyaml/package.py +++ b/var/spack/repos/builtin/packages/py-pyyaml/package.py @@ -61,8 +61,6 @@ class PyPyyaml(PythonPackage): return args # Tests need to be re-added since `phases` was overridden - run_after('build_ext')( - PythonPackage._run_default_build_time_test_callbacks) run_after('install')( PythonPackage._run_default_install_time_test_callbacks) run_after('install')(PythonPackage.sanity_check_prefix) diff --git a/var/spack/repos/builtin/packages/py-pyzmq/package.py b/var/spack/repos/builtin/packages/py-pyzmq/package.py index 9cd9e46242..3e5dae326a 100644 --- a/var/spack/repos/builtin/packages/py-pyzmq/package.py +++ b/var/spack/repos/builtin/packages/py-pyzmq/package.py @@ -11,6 +11,14 @@ class PyPyzmq(PythonPackage): homepage = "https://github.com/zeromq/pyzmq" url = "https://github.com/zeromq/pyzmq/archive/v14.7.0.tar.gz" + import_modules = [ + 'zmq', 'zmq.green', 'zmq.green.eventloop', 'zmq.sugar', 'zmq.auth', + 'zmq.auth.asyncio', 'zmq.utils', 'zmq.backend', 'zmq.backend.cffi', + 'zmq.backend.cython', 'zmq.ssh', 'zmq.eventloop', + 'zmq.eventloop.minitornado', 'zmq.eventloop.minitornado.platform', + 'zmq.log', 'zmq.asyncio', 'zmq.devices' + ] + version('18.1.0', sha256='32f7618b8104021bc96cbd60be4330bdf37b929e8061dbce362c9f3478a08e21') version('18.0.1', sha256='7b0107992d8cc4c43d9af1c2e13d573ea761c7feb23d7e0e7da9dc963811e68f') version('17.1.2', sha256='77a32350440e321466b1748e6063b34a8a73768b62cb674e7d799fbc654b7c45') @@ -18,9 +26,9 @@ class PyPyzmq(PythonPackage): version('14.7.0', sha256='809a5fcc720d286c840f7f64696e60322b5b2544795a73db626f09b344d16a15') depends_on('python@2.7:2.8,3.3:', type=('build', 'run'), when='@18:') - depends_on('py-cython@0.16:', type=('build', 'run')) - depends_on('py-cython@0.20:', type=('build', 'run'), when='@18:') - # these dependencies might only be needed for pypy + depends_on('py-cython@0.16:', type='build') + depends_on('py-cython@0.20:', type='build', when='@18:') depends_on('py-py', type=('build', 'run')) depends_on('py-cffi', type=('build', 'run')) + depends_on('py-gevent', type=('build', 'run')) depends_on('libzmq') diff --git a/var/spack/repos/builtin/packages/py-qsymm/package.py b/var/spack/repos/builtin/packages/py-qsymm/package.py index 6817a72a80..e550f342cd 100644 --- a/var/spack/repos/builtin/packages/py-qsymm/package.py +++ b/var/spack/repos/builtin/packages/py-qsymm/package.py @@ -27,5 +27,4 @@ class PyQsymm(PythonPackage): depends_on('py-scipy@0.19:', type=('build', 'run')) depends_on('py-sympy@1.1:', type=('build', 'run')) depends_on('py-tinyarray', type=('build', 'run')) - depends_on('py-pytest', type='test') depends_on('py-pytest-runner', type='build') diff --git a/var/spack/repos/builtin/packages/py-qtconsole/package.py b/var/spack/repos/builtin/packages/py-qtconsole/package.py index 046e04c2e5..75c1e97b1c 100644 --- a/var/spack/repos/builtin/packages/py-qtconsole/package.py +++ b/var/spack/repos/builtin/packages/py-qtconsole/package.py @@ -26,5 +26,3 @@ class PyQtconsole(PythonPackage): depends_on('py-ipython-genutils', type=('build', 'run'), when='@4.5.1:') depends_on('py-sphinx@1.3:', type=('build', 'run'), when='+docs') depends_on('py-pyqt5', type='run') - - depends_on('py-mock', type='test', when='^python@2.7:2.8') diff --git a/var/spack/repos/builtin/packages/py-rasterio/package.py b/var/spack/repos/builtin/packages/py-rasterio/package.py index 8d3b131b4e..ab5eec1633 100644 --- a/var/spack/repos/builtin/packages/py-rasterio/package.py +++ b/var/spack/repos/builtin/packages/py-rasterio/package.py @@ -17,7 +17,6 @@ class PyRasterio(PythonPackage): url = "https://pypi.io/packages/source/r/rasterio/rasterio-1.1.5.tar.gz" maintainers = ['adamjstewart'] - import_modules = ['rasterio', 'rasterio.rio'] version('1.1.5', sha256='ebe75c71f9257c780615caaec8ef81fa4602702cf9290a65c213e1639284acc9') version('1.0.24', sha256='4839479621045211f66868ec49625979693450bc2e476f23e7e8ac4804eaf452') @@ -37,10 +36,3 @@ class PyRasterio(PythonPackage): depends_on('py-enum34', type='run', when='^python@:3.3') depends_on('gdal@1.11:3.0', when='@1.0.25:') depends_on('gdal@1.11:2', when='@:1.0.24') - depends_on('py-pytest@2.8.2:', type='test') - depends_on('py-pytest-cov@2.2.0:', type='test') - depends_on('py-boto3@1.2.4:', type='test') - depends_on('py-packaging', type='test') - depends_on('py-hypothesis', type='test') - depends_on('py-futures', type='test', when='^python@:3.1') - depends_on('py-mock', type='test', when='^python@:3.1') diff --git a/var/spack/repos/builtin/packages/py-readme-renderer/package.py b/var/spack/repos/builtin/packages/py-readme-renderer/package.py index edfdfa6d46..9df50f2890 100644 --- a/var/spack/repos/builtin/packages/py-readme-renderer/package.py +++ b/var/spack/repos/builtin/packages/py-readme-renderer/package.py @@ -21,5 +21,3 @@ class PyReadmeRenderer(PythonPackage): depends_on('py-docutils@0.13.1:', type=('build', 'run')) depends_on('py-pygments', type=('build', 'run')) depends_on('py-six', type=('build', 'run')) - depends_on('py-pytest', type='test') - depends_on('py-mock', type='test') diff --git a/var/spack/repos/builtin/packages/py-requests-mock/package.py b/var/spack/repos/builtin/packages/py-requests-mock/package.py index 94807b5cbd..9b3b0e27e0 100644 --- a/var/spack/repos/builtin/packages/py-requests-mock/package.py +++ b/var/spack/repos/builtin/packages/py-requests-mock/package.py @@ -12,8 +12,6 @@ class PyRequestsMock(PythonPackage): homepage = "https://requests-mock.readthedocs.io/" url = "https://pypi.io/packages/source/r/requests-mock/requests-mock-1.7.0.tar.gz" - import_modules = ['requests_mock'] - version('1.7.0', sha256='88d3402dd8b3c69a9e4f9d3a73ad11b15920c6efd36bc27bf1f701cf4a8e4646') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-requests-oauthlib/package.py b/var/spack/repos/builtin/packages/py-requests-oauthlib/package.py index 6c6a633e47..b6f0a66667 100644 --- a/var/spack/repos/builtin/packages/py-requests-oauthlib/package.py +++ b/var/spack/repos/builtin/packages/py-requests-oauthlib/package.py @@ -20,5 +20,3 @@ class PyRequestsOauthlib(PythonPackage): depends_on('py-oauthlib@3.0.0:', type=('build', 'run')) depends_on('py-requests@2.0.0:', type=('build', 'run')) depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) - depends_on('py-mock', type='test') - depends_on('py-requests-mock', type='test') diff --git a/var/spack/repos/builtin/packages/py-requests/package.py b/var/spack/repos/builtin/packages/py-requests/package.py index 30af0cd73f..513e58cc02 100644 --- a/var/spack/repos/builtin/packages/py-requests/package.py +++ b/var/spack/repos/builtin/packages/py-requests/package.py @@ -12,17 +12,6 @@ class PyRequests(PythonPackage): homepage = "http://python-requests.org" url = "https://pypi.io/packages/source/r/requests/requests-2.24.0.tar.gz" - import_modules = [ - 'requests', 'requests.packages', 'requests.packages.chardet', - 'requests.packages.urllib3', 'requests.packages.idna', - 'requests.packages.chardet.cli', 'requests.packages.urllib3.util', - 'requests.packages.urllib3.packages', - 'requests.packages.urllib3.contrib', - 'requests.packages.urllib3.packages.ssl_match_hostname', - 'requests.packages.urllib3.packages.backports', - 'requests.packages.urllib3.contrib._securetransport' - ] - version('2.24.0', sha256='b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b') version('2.23.0', sha256='b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6') version('2.22.0', sha256='11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4') @@ -41,10 +30,3 @@ class PyRequests(PythonPackage): depends_on('py-idna@2.5:2.999', type=('build', 'run'), when='@2.23.0:') depends_on('py-urllib3@1.21.1:1.24,1.25.2:1.25.999', type=('build', 'run'), when='@2.16.0:') depends_on('py-certifi@2017.4.17:', type=('build', 'run'), when='@2.16.0:') - - depends_on('py-pytest-httpbin@0.0.7', type='test') - depends_on('py-pytest-cov', type='test') - depends_on('py-pytest-mock', type='test') - depends_on('py-pytest-xdist', type='test') - depends_on('py-pysocks@1.5.6,1.5.8:', type='test') - depends_on('py-pytest@2.8.0:', type='test') diff --git a/var/spack/repos/builtin/packages/py-robotframework/package.py b/var/spack/repos/builtin/packages/py-robotframework/package.py index 6eaa479102..bce66cceaf 100644 --- a/var/spack/repos/builtin/packages/py-robotframework/package.py +++ b/var/spack/repos/builtin/packages/py-robotframework/package.py @@ -16,7 +16,3 @@ class PyRobotframework(PythonPackage): version('3.2.1', sha256='9805faa0990125ff2c9689b673448d5f47e78470e7a8e95af1606a775fa8379f') depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-enum34', type='test') - depends_on('py-ipaddress', type='test') - depends_on('py-mock', type='test') - depends_on('py-unittest2', type='test') diff --git a/var/spack/repos/builtin/packages/py-rsa/package.py b/var/spack/repos/builtin/packages/py-rsa/package.py index 85e2b84d00..4f7604e828 100644 --- a/var/spack/repos/builtin/packages/py-rsa/package.py +++ b/var/spack/repos/builtin/packages/py-rsa/package.py @@ -12,8 +12,6 @@ class PyRsa(PythonPackage): homepage = "https://stuvel.eu/rsa" url = "https://pypi.io/packages/source/r/rsa/rsa-3.4.2.tar.gz" - import_modules = ['rsa'] - version('4.0', sha256='1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487') version('3.4.2', sha256='25df4e10c263fb88b5ace923dd84bf9aa7f5019687b5e55382ffcdb8bede9db5') diff --git a/var/spack/repos/builtin/packages/py-s3transfer/package.py b/var/spack/repos/builtin/packages/py-s3transfer/package.py index 5db6bd28a3..59ec02bfcf 100644 --- a/var/spack/repos/builtin/packages/py-s3transfer/package.py +++ b/var/spack/repos/builtin/packages/py-s3transfer/package.py @@ -12,11 +12,8 @@ class PyS3transfer(PythonPackage): homepage = "https://github.com/boto/s3transfer" url = "https://pypi.io/packages/source/s/s3transfer/s3transfer-0.2.1.tar.gz" - import_modules = ['s3transfer'] - version('0.2.1', sha256='6efc926738a3cd576c2a79725fed9afde92378aa5c6a957e3af010cb019fac9d') depends_on('py-setuptools', type='build') depends_on('py-botocore@1.12.36:1.999', type=('build', 'run')) depends_on('py-futures@2.2:3', type=('build', 'run'), when='^python@:2') - depends_on('py-mock', type='test') diff --git a/var/spack/repos/builtin/packages/py-scandir/package.py b/var/spack/repos/builtin/packages/py-scandir/package.py index a32b03a06e..57f7e2cfa6 100644 --- a/var/spack/repos/builtin/packages/py-scandir/package.py +++ b/var/spack/repos/builtin/packages/py-scandir/package.py @@ -12,8 +12,6 @@ class PyScandir(PythonPackage): homepage = "https://github.com/benhoyt/scandir" url = "https://pypi.io/packages/source/s/scandir/scandir-1.9.0.tar.gz" - import_modules = ['scandir'] - version('1.10.0', sha256='4d4631f6062e658e9007ab3149a9b914f3548cb38bfb021c64f39a025ce578ae') version('1.9.0', sha256='44975e209c4827fc18a3486f257154d34ec6eaec0f90fef0cca1caa482db7064') version('1.6', sha256='e0278a2d4bc6c0569aedbe66bf26c8ab5b2b08378b3289de49257f23ac624338') diff --git a/var/spack/repos/builtin/packages/py-scikit-learn/package.py b/var/spack/repos/builtin/packages/py-scikit-learn/package.py index 0a9bf34523..ce825077eb 100644 --- a/var/spack/repos/builtin/packages/py-scikit-learn/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-learn/package.py @@ -12,23 +12,6 @@ class PyScikitLearn(PythonPackage): git = "https://github.com/scikit-learn/scikit-learn.git" maintainers = ['adamjstewart'] - install_time_test_callbacks = ['install_test', 'import_module_test'] - - import_modules = [ - 'sklearn', 'sklearn.tree', 'sklearn.metrics', 'sklearn.ensemble', - 'sklearn.experimental', 'sklearn.cluster', - 'sklearn.feature_extraction', 'sklearn.__check_build', - 'sklearn.semi_supervised', 'sklearn.gaussian_process', - 'sklearn.compose', 'sklearn.datasets', 'sklearn.externals', - 'sklearn.linear_model', 'sklearn.impute', 'sklearn.utils', - 'sklearn.covariance', 'sklearn.neural_network', - 'sklearn.feature_selection', 'sklearn.inspection', 'sklearn.svm', - 'sklearn.manifold', 'sklearn.mixture', 'sklearn.preprocessing', - 'sklearn.model_selection', 'sklearn._build_utils', - 'sklearn.decomposition', 'sklearn.cross_decomposition', - 'sklearn.neighbors', 'sklearn.metrics.cluster', - 'sklearn.ensemble._hist_gradient_boosting' - ] version('master', branch='master') version('0.23.2', sha256='20766f515e6cd6f954554387dfae705d93c7b544ec0e6c6a5d8e006f6f7ef480') @@ -93,6 +76,8 @@ class PyScikitLearn(PythonPackage): env.append_flags( 'LDFLAGS', self.spec['llvm-openmp'].libs.ld_flags) + @run_after('install') + @on_package_attributes(run_tests=True) def install_test(self): # https://scikit-learn.org/stable/developers/advanced_installation.html#testing with working_dir('spack-test', create=True): diff --git a/var/spack/repos/builtin/packages/py-scikit-optimize/package.py b/var/spack/repos/builtin/packages/py-scikit-optimize/package.py index 6f148d5fe1..3585143e3d 100644 --- a/var/spack/repos/builtin/packages/py-scikit-optimize/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-optimize/package.py @@ -28,4 +28,3 @@ class PyScikitOptimize(PythonPackage): depends_on('py-scikit-learn@0.19.1:', type=('build', 'run')) depends_on('py-matplotlib', when='+plots') - depends_on('py-pytest@3.3.0:', type='test') diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py index 7f6027c0e1..c01d47e55e 100644 --- a/var/spack/repos/builtin/packages/py-scipy/package.py +++ b/var/spack/repos/builtin/packages/py-scipy/package.py @@ -16,20 +16,6 @@ class PyScipy(PythonPackage): git = "https://github.com/scipy/scipy.git" maintainers = ['adamjstewart'] - install_time_test_callbacks = ['install_test', 'import_module_test'] - - import_modules = [ - 'scipy', 'scipy._build_utils', 'scipy._lib', 'scipy.cluster', - 'scipy.constants', 'scipy.fftpack', 'scipy.integrate', - 'scipy.interpolate', 'scipy.io', 'scipy.linalg', 'scipy.misc', - 'scipy.ndimage', 'scipy.odr', 'scipy.optimize', 'scipy.signal', - 'scipy.sparse', 'scipy.spatial', 'scipy.special', 'scipy.stats', - 'scipy.io.arff', 'scipy.io.harwell_boeing', 'scipy.io.matlab', - 'scipy.optimize._lsq', 'scipy.sparse.csgraph', 'scipy.sparse.linalg', - 'scipy.sparse.linalg.dsolve', 'scipy.sparse.linalg.eigen', - 'scipy.sparse.linalg.isolve', 'scipy.sparse.linalg.eigen.arpack', - 'scipy.sparse.linalg.eigen.lobpcg', 'scipy.special._precompute' - ] version('master', branch='master') version('1.5.4', sha256='4a453d5e5689de62e5d38edf40af3f17560bfd63c9c5bd228c18c1f99afa155b') @@ -107,21 +93,8 @@ class PyScipy(PythonPackage): return args - def build_test(self): - # `setup.py test` is not supported. Use one of the following - # instead: - # - # - `python runtests.py` (to build and test) - # - `python runtests.py --no-build` (to test installed scipy) - # - `>>> scipy.test()` (run tests for installed scipy - # from within an interpreter) - pass - + @run_after('install') + @on_package_attributes(run_tests=True) def install_test(self): - # Change directories due to the following error: - # - # ImportError: Error importing scipy: you should not try to import - # scipy from its source directory; please exit the scipy - # source tree, and relaunch your python interpreter from there. with working_dir('spack-test', create=True): python('-c', 'import scipy; scipy.test("full", verbose=2)') diff --git a/var/spack/repos/builtin/packages/py-setuptools-scm/package.py b/var/spack/repos/builtin/packages/py-setuptools-scm/package.py index eb157f8ef5..21ec2203ce 100644 --- a/var/spack/repos/builtin/packages/py-setuptools-scm/package.py +++ b/var/spack/repos/builtin/packages/py-setuptools-scm/package.py @@ -12,8 +12,6 @@ class PySetuptoolsScm(PythonPackage): homepage = "https://github.com/pypa/setuptools_scm" url = "https://pypi.io/packages/source/s/setuptools_scm/setuptools_scm-4.1.2.tar.gz" - import_modules = ['setuptools_scm'] - version('4.1.2', sha256='a8994582e716ec690f33fec70cca0f85bd23ec974e3f783233e4879090a7faa8') version('3.3.3', sha256='bd25e1fb5e4d603dcf490f1fde40fb4c595b357795674c3e5cb7f6217ab39ea5') version('3.1.0', sha256='1191f2a136b5e86f7ca8ab00a97ef7aef997131f1f6d4971be69a1ef387d8b40') diff --git a/var/spack/repos/builtin/packages/py-setuptools/package.py b/var/spack/repos/builtin/packages/py-setuptools/package.py index 1a2930498b..29e705c5ac 100644 --- a/var/spack/repos/builtin/packages/py-setuptools/package.py +++ b/var/spack/repos/builtin/packages/py-setuptools/package.py @@ -13,14 +13,6 @@ class PySetuptools(PythonPackage): homepage = "https://github.com/pypa/setuptools" url = "https://pypi.io/packages/source/s/setuptools/setuptools-49.2.0.zip" - import_modules = [ - 'setuptools', 'pkg_resources', 'setuptools._vendor', - 'setuptools.command', 'setuptools.extern', - 'setuptools._vendor.packaging', 'pkg_resources._vendor', - 'pkg_resources.extern', 'pkg_resources._vendor.packaging', - 'easy_install' - ] - version('50.3.2', sha256='ed0519d27a243843b05d82a5e9d01b0b083d9934eaa3d02779a23da18077bd3c') version('50.1.0', sha256='4a7708dafd2d360ce5e2ac7577374da9fb65fc867bc4cdaf461f9f834dfa6ac3') version('49.6.0', sha256='46bd862894ed22c2edff033c758c2dc026324788d758e96788e8f7c11f4e9707') @@ -35,9 +27,6 @@ class PySetuptools(PythonPackage): version('40.2.0', sha256='47881d54ede4da9c15273bac65f9340f8929d4f0213193fa7894be384f2dcfa6') version('39.2.0', sha256='f7cddbb5f5c640311eb00eab6e849f7701fa70bf6a183fc8a2c33dd1d1672fb2') version('39.0.1', sha256='bec7badf0f60e7fc8153fac47836edc41b74e5d541d7692e614e635720d6a7c7') - version('35.0.2', sha256='1e55496ca8058db68ae12ac29a985d1ee2c2483a5901f7692fb68fa2f9a250fd') - version('34.4.1', sha256='704cc0c9fe6c97edd3c6370d165c5a754dfde318b671058523ed3226d944ea1b') - version('34.2.0', sha256='7b551f5070f9414d48c08dda58bcb879c8d9276199283a99dc8e1362e2f378a2') version('25.2.0', sha256='b2757ddac2c41173140b111e246d200768f6dd314110e1e40661d0ecf9b4d6a6') version('20.7.0', sha256='505cdf282c5f6e3a056e79f0244b8945f3632257bba8469386c6b9b396400233') version('20.6.7', sha256='d20152ee6337323d3b6d95cd733fb719d6b4f3fbc40f61f7a48e5a1bb96478b2') @@ -50,16 +39,6 @@ class PySetuptools(PythonPackage): depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@44.0.0:44.99.99') depends_on('python@2.7:2.8,3.4:', type=('build', 'run'), when='@:43.99.99') - # Previously, setuptools vendored all of its dependencies to allow - # easy bootstrapping. As of version 34.0.0, this is no longer done - # and the dependencies need to be installed externally. As of version - # 36.0.0, setuptools now vendors its dependencies again. See - # https://github.com/pypa/setuptools/issues/980 for the reason they - # reverted back to vendoring again. - depends_on('py-packaging@16.8:', when='@34:35', type=('build', 'run')) - depends_on('py-six@1.6.0:', when='@34:35', type=('build', 'run')) - depends_on('py-appdirs@1.4.0:', when='@34:35', type=('build', 'run')) - def url_for_version(self, version): url = 'https://pypi.io/packages/source/s/setuptools/setuptools-{0}' url = url.format(version) @@ -70,7 +49,3 @@ class PySetuptools(PythonPackage): url += '.tar.gz' return url - - def build_test(self): - # Unit tests require pytest, creating a circular dependency - pass diff --git a/var/spack/repos/builtin/packages/py-shapely/package.py b/var/spack/repos/builtin/packages/py-shapely/package.py index c03106a6be..345d28b042 100644 --- a/var/spack/repos/builtin/packages/py-shapely/package.py +++ b/var/spack/repos/builtin/packages/py-shapely/package.py @@ -16,10 +16,6 @@ class PyShapely(PythonPackage): git = "https://github.com/Toblerity/Shapely.git" maintainers = ['adamjstewart'] - import_modules = [ - 'shapely', 'shapely.geometry', 'shapely.algorithms', - 'shapely.examples', 'shapely.speedups', 'shapely.vectorized', - ] version('master', branch='master') version('1.7.1', sha256='1641724c1055459a7e2b8bbe47ba25bdc89554582e62aec23cb3f3ca25f9b129') @@ -64,5 +60,7 @@ class PyShapely(PythonPackage): else: env.prepend_path('LD_LIBRARY_PATH', libs) + @run_after('install') + @on_package_attributes(run_tests=True) def test_install(self): python('-m', 'pytest') diff --git a/var/spack/repos/builtin/packages/py-six/package.py b/var/spack/repos/builtin/packages/py-six/package.py index 22490eb9a2..291d38b741 100644 --- a/var/spack/repos/builtin/packages/py-six/package.py +++ b/var/spack/repos/builtin/packages/py-six/package.py @@ -12,8 +12,6 @@ class PySix(PythonPackage): homepage = "https://pypi.python.org/pypi/six" url = "https://pypi.io/packages/source/s/six/six-1.11.0.tar.gz" - import_modules = ['six'] - version('1.14.0', sha256='236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a') version('1.12.0', sha256='d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73') version('1.11.0', sha256='70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9') @@ -22,10 +20,4 @@ class PySix(PythonPackage): version('1.8.0', sha256='047bbbba41bac37c444c75ddfdf0573dd6e2f1fbd824e6247bb26fa7d8fa3830') extends('python', ignore=r'bin/pytest') - - # Newer versions of setuptools require six. Although setuptools is an - # optional dependency of six, if it is not found, setup.py will fallback - # on distutils.core instead. Don't add a setuptools dependency or we - # won't be able to bootstrap setuptools. - - # depends_on('py-setuptools', type='build') + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-snowballstemmer/package.py b/var/spack/repos/builtin/packages/py-snowballstemmer/package.py index 80af93c40a..4502c5cc7b 100644 --- a/var/spack/repos/builtin/packages/py-snowballstemmer/package.py +++ b/var/spack/repos/builtin/packages/py-snowballstemmer/package.py @@ -13,8 +13,6 @@ class PySnowballstemmer(PythonPackage): homepage = "https://github.com/shibukawa/snowball_py" url = "https://pypi.io/packages/source/s/snowballstemmer/snowballstemmer-2.0.0.tar.gz" - import_modules = ['snowballstemmer'] - version('2.0.0', sha256='df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52') version('1.2.1', sha256='919f26a68b2c17a7634da993d91339e288964f93c274f1343e3bbbe2096e1128') diff --git a/var/spack/repos/builtin/packages/py-spdlog/package.py b/var/spack/repos/builtin/packages/py-spdlog/package.py index 2e149b6b30..0e9d377353 100644 --- a/var/spack/repos/builtin/packages/py-spdlog/package.py +++ b/var/spack/repos/builtin/packages/py-spdlog/package.py @@ -25,4 +25,3 @@ class PySpdlog(PythonPackage): depends_on('py-pybind11@2.2:', type=('build', 'run')) depends_on('py-setuptools', type='build') depends_on('py-pytest-runner', type='build') - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-spefile/package.py b/var/spack/repos/builtin/packages/py-spefile/package.py index 54eec9ff91..fed2c428a6 100644 --- a/var/spack/repos/builtin/packages/py-spefile/package.py +++ b/var/spack/repos/builtin/packages/py-spefile/package.py @@ -13,8 +13,6 @@ class PySpefile(PythonPackage): homepage = "https://github.com/conda-forge/spefile-feedstock" git = "https://github.com/conda-forge/spefile-feedstock.git" - import_modules = ['spefile'] - version('1.6', commit='24394e066da8dee5e7608f556ca0203c9db217f9') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py b/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py index bc09b3324b..21446b2d23 100644 --- a/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py +++ b/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py @@ -12,8 +12,6 @@ class PySphinxRtdTheme(PythonPackage): homepage = "https://github.com/rtfd/sphinx_rtd_theme/" url = "https://github.com/readthedocs/sphinx_rtd_theme/archive/0.5.0.tar.gz" - import_modules = ['sphinx_rtd_theme'] - version('0.5.0', sha256='f5c77e9026e2bd0b3d2530f9f8a6681808b216ba70195fe56e7ad89f641ac447') version('0.4.3', sha256='3412195caad06e4537ad741596d57706c3ed29073d1e0e6b46f25e344d0f393b') version('0.2.5b1', sha256='31924cdaa5232d1d573423ebebeb1e8f02c8b3cd8cd0662b8a91f3b12efbc12e') @@ -22,4 +20,3 @@ class PySphinxRtdTheme(PythonPackage): depends_on('py-setuptools', type='build') depends_on('npm', when='@0.5.0:', type='build') depends_on('py-sphinx', when='@0.4.1:', type=('build', 'run')) - depends_on('py-pytest', when='@0.5.0:', type='test') diff --git a/var/spack/repos/builtin/packages/py-sphinx/package.py b/var/spack/repos/builtin/packages/py-sphinx/package.py index d326c53f4c..2545853d27 100644 --- a/var/spack/repos/builtin/packages/py-sphinx/package.py +++ b/var/spack/repos/builtin/packages/py-sphinx/package.py @@ -12,16 +12,6 @@ class PySphinx(PythonPackage): homepage = "https://sphinx-doc.org/" url = "https://pypi.io/packages/source/S/Sphinx/Sphinx-3.2.0.tar.gz" - import_modules = [ - 'sphinx', 'sphinx.testing', 'sphinx.ext', 'sphinx.pycode', - 'sphinx.search', 'sphinx.transforms', 'sphinx.builders', - 'sphinx.directives', 'sphinx.util', 'sphinx.environment', - 'sphinx.writers', 'sphinx.domains', 'sphinx.locale', - 'sphinx.ext.napoleon', 'sphinx.ext.autosummary', 'sphinx.pycode.pgen2', - 'sphinx.transforms.post_transforms', 'sphinx.util.stemmer', - 'sphinx.environment.collectors', 'sphinx.environment.adapters' - ] - version('3.2.0', sha256='cf2d5bc3c6c930ab0a1fbef3ad8a82994b1bf4ae923f8098a05c7e5516f07177') version('3.0.0', sha256='6a099e6faffdc3ceba99ca8c2d09982d43022245e409249375edf111caf79ed3') version('2.2.0', sha256='0d586b0f8c2fc3cc6559c5e8fd6124628110514fda0e5d7c82e682d749d2e845') @@ -64,11 +54,3 @@ class PySphinx(PythonPackage): depends_on('py-packaging', when='@1.7.4:', type=('build', 'run')) depends_on('py-typing', when='@1.6.1', type=('build', 'run')) depends_on('py-typing', when='@1.6.2:^python@2.7:3.4', type=('build', 'run')) - - depends_on('py-pytest', type='test') - depends_on('py-pytest-cov', type='test') - depends_on('py-html5lib', type='test') - depends_on('py-flake8@3.5.0:', type='test') - depends_on('py-flake8-import-order', type='test') - depends_on('py-mypy@0.720:', type='test') - depends_on('py-docutils-stubs', type='test') diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-applehelp/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-applehelp/package.py index 67ba38134c..970a8c253a 100644 --- a/var/spack/repos/builtin/packages/py-sphinxcontrib-applehelp/package.py +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-applehelp/package.py @@ -17,7 +17,3 @@ class PySphinxcontribApplehelp(PythonPackage): depends_on('python@3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') - - def build_test(self): - # Requires sphinx, creating a circular dependency - pass diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py index d7820786b0..c9457234e0 100644 --- a/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py @@ -12,8 +12,6 @@ class PySphinxcontribBibtex(PythonPackage): homepage = "https://pypi.python.org/pypi/sphinxcontrib-bibtex" url = "https://pypi.io/packages/source/s/sphinxcontrib-bibtex/sphinxcontrib-bibtex-0.3.5.tar.gz" - import_modules = ['sphinxcontrib', 'sphinxcontrib.bibtex'] - version('1.0.0', sha256='629612b001f86784669d65e662377a482052decfd9a0a17c46860878eef7b9e0') version('0.3.5', sha256='c93e2b4a0d14f0ab726f95f0a33c1675965e9df3ed04839635577b8f978206cd') diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-devhelp/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-devhelp/package.py index 1954fc9677..cc7cec387b 100644 --- a/var/spack/repos/builtin/packages/py-sphinxcontrib-devhelp/package.py +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-devhelp/package.py @@ -17,7 +17,3 @@ class PySphinxcontribDevhelp(PythonPackage): depends_on('python@3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') - - def build_test(self): - # Requires sphinx, creating a circular dependency - pass diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-htmlhelp/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-htmlhelp/package.py index 95f6819d59..d368247ca7 100644 --- a/var/spack/repos/builtin/packages/py-sphinxcontrib-htmlhelp/package.py +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-htmlhelp/package.py @@ -17,7 +17,3 @@ class PySphinxcontribHtmlhelp(PythonPackage): depends_on('python@3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') - - def build_test(self): - # Requires sphinx, creating a circular dependency - pass diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-jsmath/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-jsmath/package.py index add0160ac8..b471284728 100644 --- a/var/spack/repos/builtin/packages/py-sphinxcontrib-jsmath/package.py +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-jsmath/package.py @@ -16,7 +16,3 @@ class PySphinxcontribJsmath(PythonPackage): depends_on('python@3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') - - def build_test(self): - # Requires sphinx, creating a circular dependency - pass diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-programoutput/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-programoutput/package.py index 56028f5163..c512f76963 100644 --- a/var/spack/repos/builtin/packages/py-sphinxcontrib-programoutput/package.py +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-programoutput/package.py @@ -13,9 +13,6 @@ class PySphinxcontribProgramoutput(PythonPackage): homepage = "https://sphinxcontrib-programoutput.readthedocs.org/" url = "https://pypi.io/packages/source/s/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.15.tar.gz" - # FIXME: These import tests don't work for some reason - # import_modules = ['sphinxcontrib', 'sphinxcontrib.programoutput'] - version('0.15', sha256='80dd5b4eab780a13ff2c23500cac3dbf0e04ef9976b409ef25a47c263ef8ab94') version('0.10', sha256='fdee94fcebb0d8fddfccac5c4fa560f6177d5340c4349ee447c890bea8857094') diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-qthelp/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-qthelp/package.py index 19fd328f37..b0b654e48f 100644 --- a/var/spack/repos/builtin/packages/py-sphinxcontrib-qthelp/package.py +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-qthelp/package.py @@ -17,7 +17,3 @@ class PySphinxcontribQthelp(PythonPackage): depends_on('python@3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') - - def build_test(self): - # Requires sphinx, creating a circular dependency - pass diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-serializinghtml/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-serializinghtml/package.py index 3bad6d661a..59c214a8eb 100644 --- a/var/spack/repos/builtin/packages/py-sphinxcontrib-serializinghtml/package.py +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-serializinghtml/package.py @@ -17,7 +17,3 @@ class PySphinxcontribSerializinghtml(PythonPackage): depends_on('python@3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') - - def build_test(self): - # Requires sphinx, creating a circular dependency - pass diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-websupport/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-websupport/package.py index 1e4d1051a3..8892f3793b 100644 --- a/var/spack/repos/builtin/packages/py-sphinxcontrib-websupport/package.py +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-websupport/package.py @@ -13,19 +13,9 @@ class PySphinxcontribWebsupport(PythonPackage): homepage = "http://sphinx-doc.org/" url = "https://pypi.io/packages/source/s/sphinxcontrib-websupport/sphinxcontrib-websupport-1.1.2.tar.gz" - # FIXME: These import tests don't work for some reason - # import_modules = [ - # 'sphinxcontrib', 'sphinxcontrib.websupport', - # 'sphinxcontrib.websupport.storage', 'sphinxcontrib.websupport.search' - # ] - version('1.1.2', sha256='1501befb0fdf1d1c29a800fdbf4ef5dc5369377300ddbdd16d2cd40e54c6eefc') version('1.1.0', sha256='9de47f375baf1ea07cdb3436ff39d7a9c76042c10a769c52353ec46e4e8fc3b9') version('1.0.1', sha256='7a85961326aa3a400cd4ad3c816d70ed6f7c740acd7ce5d78cd0a67825072eb9') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') - - def build_test(self): - # Unit tests require sphinx, creating a circular dependency - pass diff --git a/var/spack/repos/builtin/packages/py-sqlalchemy/package.py b/var/spack/repos/builtin/packages/py-sqlalchemy/package.py index b1497b6da0..37b6568290 100644 --- a/var/spack/repos/builtin/packages/py-sqlalchemy/package.py +++ b/var/spack/repos/builtin/packages/py-sqlalchemy/package.py @@ -21,9 +21,6 @@ class PySqlalchemy(PythonPackage): depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-pytest@2.5.2:3.9.0,3.9.3:', type='test') - depends_on('py-mock', type='test') - depends_on('py-pytest-xdist', type='test') variant('backend', description='Python modules for database access', values=any_combination_of('mysql', 'pymysql', 'postgresql')) diff --git a/var/spack/repos/builtin/packages/py-srsly/package.py b/var/spack/repos/builtin/packages/py-srsly/package.py index 46b1b50af0..a0f0405e56 100644 --- a/var/spack/repos/builtin/packages/py-srsly/package.py +++ b/var/spack/repos/builtin/packages/py-srsly/package.py @@ -19,11 +19,6 @@ class PySrsly(PythonPackage): depends_on('py-wheel', when='@2:', type='build') depends_on('py-cython@0.25:', when='@2:', type='build') depends_on('py-pathlib@1.0.1', when='^python@:3.3', type=('build', 'run')) - depends_on('py-pytest', type='test') - depends_on('py-mock', type='test') - depends_on('py-numpy', type='test') - depends_on('py-six', when='@:1', type='test') - depends_on('py-pytz', when='@:1', type='test') # https://github.com/explosion/srsly/pull/24 patch('subprocess.patch', when='@2.0.0:2.0.1') diff --git a/var/spack/repos/builtin/packages/py-statsmodels/package.py b/var/spack/repos/builtin/packages/py-statsmodels/package.py index b00e51730b..d2bfd16e37 100644 --- a/var/spack/repos/builtin/packages/py-statsmodels/package.py +++ b/var/spack/repos/builtin/packages/py-statsmodels/package.py @@ -42,6 +42,8 @@ class PyStatsmodels(PythonPackage): depends_on('py-pytest', type='test') + @run_after('build') + @on_package_attributes(run_tests=True) def build_test(self): dirs = glob.glob("build/lib*") # There can be only one... with working_dir(dirs[0]): diff --git a/var/spack/repos/builtin/packages/py-tables/package.py b/var/spack/repos/builtin/packages/py-tables/package.py index 2abece3e51..6d72791816 100644 --- a/var/spack/repos/builtin/packages/py-tables/package.py +++ b/var/spack/repos/builtin/packages/py-tables/package.py @@ -13,10 +13,6 @@ class PyTables(PythonPackage): homepage = "http://www.pytables.org/" url = "https://pypi.io/packages/source/t/tables/tables-3.6.1.tar.gz" - import_modules = [ - 'tables', 'tables.misc', 'tables.nodes', 'tables.scripts' - ] - version('3.6.1', sha256='49a972b8a7c27a8a173aeb05f67acb45fe608b64cd8e9fa667c0962a60b71b49') version('3.6.0', sha256='db3488214864fb313a611fca68bf1c9019afe4e7877be54d0e61c84416603d4d') version('3.5.2', sha256='b220e32262bab320aa41d33125a7851ff898be97c0de30b456247508e2cc33c2') @@ -38,7 +34,6 @@ class PyTables(PythonPackage): depends_on('py-numpy@1.9.3:', type=('build', 'run')) depends_on('py-numexpr@2.6.2:', type=('build', 'run')) depends_on('py-six@1.9.0:', when='@:3.5', type=('build', 'run')) - depends_on('py-mock@2.0:', type='test') # tables/req_versions.py depends_on('hdf5@1.8.4:1.8.999', when='@:3.3.99') depends_on('hdf5@1.8.4:', when='@3.4.0:') diff --git a/var/spack/repos/builtin/packages/py-tatsu/package.py b/var/spack/repos/builtin/packages/py-tatsu/package.py index 8b157932bf..6e45f07aeb 100644 --- a/var/spack/repos/builtin/packages/py-tatsu/package.py +++ b/var/spack/repos/builtin/packages/py-tatsu/package.py @@ -22,6 +22,5 @@ class PyTatsu(PythonPackage): depends_on('py-setuptools', type='build') # part of the standard lib in python@3.7.0, required in the current HEAD depends_on('py-dataclasses@0.6:', type=('build', 'run'), when='@4.5:^python@:3.6.99') - depends_on('py-pytest-mypy', type='test') # optional dependency, otherwise falls back to standard implementation depends_on('py-regex@2018.8:', type=('build', 'run'), when='+future_regex') diff --git a/var/spack/repos/builtin/packages/py-tensorflow/package.py b/var/spack/repos/builtin/packages/py-tensorflow/package.py index d0b21d38e5..71c7a91ddb 100644 --- a/var/spack/repos/builtin/packages/py-tensorflow/package.py +++ b/var/spack/repos/builtin/packages/py-tensorflow/package.py @@ -15,7 +15,6 @@ class PyTensorflow(Package, CudaPackage): url = "https://github.com/tensorflow/tensorflow/archive/v2.3.1.tar.gz" maintainers = ['adamjstewart', 'aweits'] - import_modules = ['tensorflow'] version('2.3.1', sha256='ee534dd31a811f7a759453567257d1e643f216d8d55a25c32d2fbfff8153a1ac') version('2.3.0', sha256='2595a5c401521f20a2734c4e5d54120996f8391f00bb62a57267d930bce95350') @@ -191,9 +190,6 @@ class PyTensorflow(Package, CudaPackage): # Only builds correctly on little-endian machines depends_on('py-grpcio@1.8.6:', type=('build', 'run'), when='@1.8:') - # Listed under TEST_PACKAGES in tensorflow/tools/pip_package/setup.py - depends_on('py-scipy@0.15.1:', type='test') - # TODO: add packages for some of these dependencies depends_on('mkl', when='+mkl') depends_on('curl', when='+gcp') @@ -277,6 +273,9 @@ class PyTensorflow(Package, CudaPackage): phases = ['configure', 'build', 'install'] + import_modules = PythonPackage.import_modules + test = PythonPackage.test + # https://www.tensorflow.org/install/source def setup_build_environment(self, env): spec = self.spec @@ -750,10 +749,3 @@ class PyTensorflow(Package, CudaPackage): setup_py('install', '--prefix={0}'.format(prefix), '--single-version-externally-managed', '--root=/') remove_linked_tree(tmp_path) - - @run_after('install') - @on_package_attributes(run_tests=True) - def import_module_test(self): - with working_dir('spack-test', create=True): - for module in self.import_modules: - python('-c', 'import {0}'.format(module)) diff --git a/var/spack/repos/builtin/packages/py-testrepository/package.py b/var/spack/repos/builtin/packages/py-testrepository/package.py index 881191bc3f..bb889bd4d4 100644 --- a/var/spack/repos/builtin/packages/py-testrepository/package.py +++ b/var/spack/repos/builtin/packages/py-testrepository/package.py @@ -12,14 +12,6 @@ class PyTestrepository(PythonPackage): homepage = "https://launchpad.net/testrepository" url = "https://pypi.io/packages/source/t/testrepository/testrepository-0.0.20.tar.gz" - import_modules = [ - 'testrepository', 'testrepository.arguments', - 'testrepository.commands', 'testrepository.repository', - 'testrepository.tests', 'testrepository.tests.arguments', - 'testrepository.tests.commands', 'testrepository.tests.repository', - 'testrepository.tests.ui', 'testrepository.ui', - ] - version('0.0.20', sha256='752449bc98c20253ec4611c40564aea93d435a5bf3ff672208e01cc10e5858eb') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-theano/package.py b/var/spack/repos/builtin/packages/py-theano/package.py index c7c95fd0e3..d06e342ea4 100644 --- a/var/spack/repos/builtin/packages/py-theano/package.py +++ b/var/spack/repos/builtin/packages/py-theano/package.py @@ -33,7 +33,3 @@ class PyTheano(PythonPackage, CudaPackage): depends_on('cudnn', when='+cuda') depends_on('py-pygpu', when='+cuda', type=('build', 'run')) depends_on('libgpuarray', when='+cuda') - - depends_on('py-nose@1.3.0:', type='test') - depends_on('py-parameterized', type='test') - depends_on('py-flake8', type='test') diff --git a/var/spack/repos/builtin/packages/py-thinc/package.py b/var/spack/repos/builtin/packages/py-thinc/package.py index 8976478000..2e344b8308 100644 --- a/var/spack/repos/builtin/packages/py-thinc/package.py +++ b/var/spack/repos/builtin/packages/py-thinc/package.py @@ -25,6 +25,3 @@ class PyThinc(PythonPackage): depends_on('py-plac@0.9.6:1.1', type=('build', 'run')) depends_on('py-tqdm@4.10:4.999', type=('build', 'run')) depends_on('py-pathlib@1.0.1', when='^python@:3.3', type=('build', 'run')) - depends_on('py-pytest', type='test') - depends_on('py-mock', type='test') - depends_on('py-hypothesis', type='test') diff --git a/var/spack/repos/builtin/packages/py-threadpoolctl/package.py b/var/spack/repos/builtin/packages/py-threadpoolctl/package.py index f28c9a37b5..ca3c6fb476 100644 --- a/var/spack/repos/builtin/packages/py-threadpoolctl/package.py +++ b/var/spack/repos/builtin/packages/py-threadpoolctl/package.py @@ -12,8 +12,6 @@ class PyThreadpoolctl(PythonPackage): homepage = "https://github.com/joblib/threadpoolctl" url = "https://pypi.io/packages/source/t/threadpoolctl/threadpoolctl-2.0.0.tar.gz" - import_modules = ['threadpoolctl'] - version('2.0.0', sha256='48b3e3e9ee079d6b5295c65cbe255b36a3026afc6dde3fb49c085cd0c004bbcf') depends_on('python@3.5:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-tifffile/package.py b/var/spack/repos/builtin/packages/py-tifffile/package.py index 905718ec89..230226ca45 100644 --- a/var/spack/repos/builtin/packages/py-tifffile/package.py +++ b/var/spack/repos/builtin/packages/py-tifffile/package.py @@ -12,8 +12,6 @@ class PyTifffile(PythonPackage): homepage = "https://github.com/blink1073/tifffile" url = "https://pypi.io/packages/source/t/tifffile/tifffile-0.12.1.tar.gz" - import_modules = ['tifffile'] - version('2020.10.1', sha256='799feeccc91965b69e1288c51a1d1118faec7f40b2eb89ad2979591b85324830') version('0.12.1', sha256='802367effe86b0d1e64cb5c2ed886771f677fa63260b945e51a27acccdc08fa1') diff --git a/var/spack/repos/builtin/packages/py-tomopy/package.py b/var/spack/repos/builtin/packages/py-tomopy/package.py index 0b7f814775..61184b99c8 100644 --- a/var/spack/repos/builtin/packages/py-tomopy/package.py +++ b/var/spack/repos/builtin/packages/py-tomopy/package.py @@ -14,11 +14,6 @@ class PyTomopy(PythonPackage): homepage = "http://tomopy.readthedocs.io/en/latest/index.html" url = "https://github.com/tomopy/tomopy/archive/1.0.0.tar.gz" - import_modules = [ - 'tomopy', 'doc', 'tomopy.util', 'tomopy.sim', 'tomopy.recon', - 'tomopy.prep', 'tomopy.misc', 'tomopy.io', 'doc.demo' - ] - version('1.0.0', sha256='ee45f7a062e5a66d6f18a904d2e204e48d85a1ce1464156f9e2f6353057dfe4c') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-toolz/package.py b/var/spack/repos/builtin/packages/py-toolz/package.py index 058d1a9283..98aa585fc0 100644 --- a/var/spack/repos/builtin/packages/py-toolz/package.py +++ b/var/spack/repos/builtin/packages/py-toolz/package.py @@ -12,8 +12,6 @@ class PyToolz(PythonPackage): homepage = "http://github.com/pytoolz/toolz/" url = "https://pypi.io/packages/source/t/toolz/toolz-0.9.0.tar.gz" - import_modules = ['toolz', 'tlz', 'toolz.curried', 'toolz.sandbox'] - version('0.9.0', sha256='929f0a7ea7f61c178bd951bdae93920515d3fbdbafc8e6caf82d752b9b3b31c9') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-torch/package.py b/var/spack/repos/builtin/packages/py-torch/package.py index 971db1c4ed..7022e562ff 100644 --- a/var/spack/repos/builtin/packages/py-torch/package.py +++ b/var/spack/repos/builtin/packages/py-torch/package.py @@ -13,42 +13,8 @@ class PyTorch(PythonPackage, CudaPackage): homepage = "https://pytorch.org/" git = "https://github.com/pytorch/pytorch.git" - install_time_test_callbacks = ['install_test', 'import_module_test'] maintainers = ['adamjstewart'] - import_modules = [ - 'tools', 'caffe2', 'torch', 'tools.cwrap', 'tools.autograd', - 'tools.setup_helpers', 'tools.shared', 'tools.jit', 'tools.pyi', - 'tools.nnwrap', 'tools.cwrap.plugins', 'caffe2.core', 'caffe2.proto', - 'caffe2.python', 'caffe2.distributed', 'caffe2.perfkernels', - 'caffe2.experiments', 'caffe2.contrib', 'caffe2.quantization', - 'caffe2.core.nomnigraph', 'caffe2.python.ideep', 'caffe2.python.mint', - 'caffe2.python.layers', 'caffe2.python.onnx', 'caffe2.python.trt', - 'caffe2.python.models', 'caffe2.python.docs', 'caffe2.python.modeling', - 'caffe2.python.mkl', 'caffe2.python.examples', - 'caffe2.python.predictor', 'caffe2.python.helpers', - 'caffe2.python.rnn', 'caffe2.python.onnx.bin', - 'caffe2.python.models.seq2seq', 'caffe2.experiments.python', - 'caffe2.contrib.nnpack', 'caffe2.contrib.warpctc', - 'caffe2.contrib.nccl', 'caffe2.contrib.playground', - 'caffe2.contrib.gloo', 'caffe2.contrib.script', 'caffe2.contrib.prof', - 'caffe2.contrib.tensorboard', 'caffe2.contrib.aten', - 'caffe2.contrib.playground.resnetdemo', - 'caffe2.contrib.script.examples', 'caffe2.contrib.aten.docs', - 'caffe2.quantization.server', 'torch.nn', 'torch.onnx', - 'torch.distributed', 'torch.autograd', 'torch.multiprocessing', - 'torch.cuda', 'torch.backends', 'torch.optim', 'torch.utils', - 'torch.contrib', 'torch.jit', 'torch.sparse', - 'torch.for_onnx', 'torch._thnn', 'torch.distributions', - 'torch.nn.parallel', 'torch.nn._functions', 'torch.nn.backends', - 'torch.nn.utils', 'torch.nn.modules', 'torch.nn.parallel.deprecated', - 'torch.nn._functions.thnn', 'torch.distributed.deprecated', - 'torch.autograd._functions', 'torch.backends.cuda', - 'torch.backends.mkl', 'torch.backends.mkldnn', 'torch.backends.openmp', - 'torch.backends.cudnn', 'torch.utils.backcompat', - 'torch.utils.bottleneck', 'torch.utils.ffi', 'torch.utils.tensorboard', - 'torch.utils.data', 'torch.utils.data._utils' - ] version('master', branch='master', submodules=True) version('1.7.1', tag='v1.7.1', submodules=True) @@ -139,6 +105,7 @@ class PyTorch(PythonPackage, CudaPackage): depends_on('blas') depends_on('lapack') depends_on('protobuf', when='@0.4:') + depends_on('py-protobuf', when='@0.4:', type=('build', 'run')) depends_on('eigen', when='@0.4:') # TODO: replace all third_party packages with Spack packages @@ -333,6 +300,8 @@ class PyTorch(PythonPackage, CudaPackage): if '+rocm' in self.spec: python(os.path.join('tools', 'amd_build', 'build_amd.py')) + @run_after('install') + @on_package_attributes(run_tests=True) def install_test(self): with working_dir('test'): python('run_test.py') diff --git a/var/spack/repos/builtin/packages/py-torchvision/package.py b/var/spack/repos/builtin/packages/py-torchvision/package.py index 6cc176ffd7..0ad004a0c2 100644 --- a/var/spack/repos/builtin/packages/py-torchvision/package.py +++ b/var/spack/repos/builtin/packages/py-torchvision/package.py @@ -13,12 +13,6 @@ class PyTorchvision(PythonPackage): git = "https://github.com/pytorch/vision.git" maintainers = ['adamjstewart'] - import_modules = [ - 'torchvision', 'torchvision.datasets', 'torchvision.models', - 'torchvision.transforms', 'torchvision.ops', - 'torchvision.models.segmentation', - 'torchvision.models.detection' - ] version('master', branch='master') version('0.8.2', sha256='9a866c3c8feb23b3221ce261e6153fc65a98ce9ceaa71ccad017016945c178bf') @@ -72,7 +66,6 @@ class PyTorchvision(PythonPackage): # Many of the datasets require additional dependencies to use. # These can be installed after the fact. - depends_on('py-scipy', type='test') depends_on('ffmpeg@3.1:', when='@0.4.2:') diff --git a/var/spack/repos/builtin/packages/py-tpot/package.py b/var/spack/repos/builtin/packages/py-tpot/package.py index 856336b54f..56ad5a4a93 100644 --- a/var/spack/repos/builtin/packages/py-tpot/package.py +++ b/var/spack/repos/builtin/packages/py-tpot/package.py @@ -20,7 +20,6 @@ class PyTpot(PythonPackage): depends_on('py-setuptools', type='build') depends_on('python@3.5:', type=('build', 'run')) depends_on('py-deap@1.2:', type=('build', 'run')) - depends_on('py-nose', type='test') depends_on('py-numpy@1.16.3:', type=('build', 'run')) depends_on('py-scikit-learn@0.22.0:', type=('build', 'run')) depends_on('py-scipy@1.3.1', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-tqdm/package.py b/var/spack/repos/builtin/packages/py-tqdm/package.py index b9e6a5b2a9..2daada6426 100644 --- a/var/spack/repos/builtin/packages/py-tqdm/package.py +++ b/var/spack/repos/builtin/packages/py-tqdm/package.py @@ -18,6 +18,3 @@ class PyTqdm(PythonPackage): depends_on('python@2.6:2.8,3.2:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-nose', type='test') - depends_on('py-flake8', type='test') - depends_on('py-coverage', type='test') diff --git a/var/spack/repos/builtin/packages/py-traceback2/package.py b/var/spack/repos/builtin/packages/py-traceback2/package.py index 766acea59a..4110732ce1 100644 --- a/var/spack/repos/builtin/packages/py-traceback2/package.py +++ b/var/spack/repos/builtin/packages/py-traceback2/package.py @@ -16,9 +16,3 @@ class PyTraceback2(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-pbr', type='build') - - # test-requirements.txt - depends_on('py-contextlib2', type='test') - depends_on('py-fixtures', type='test') - depends_on('py-testtools', type='test') - depends_on('py-unittest2', type='test') diff --git a/var/spack/repos/builtin/packages/py-traitlets/package.py b/var/spack/repos/builtin/packages/py-traitlets/package.py index df854d70c6..341664c37b 100644 --- a/var/spack/repos/builtin/packages/py-traitlets/package.py +++ b/var/spack/repos/builtin/packages/py-traitlets/package.py @@ -29,4 +29,3 @@ class PyTraitlets(PythonPackage): depends_on('py-six', when='@:4', type=('build', 'run')) depends_on('py-decorator', when='@:4', type=('build', 'run')) depends_on('py-enum34', when='^python@:3.3', type=('build', 'run')) - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-typing/package.py b/var/spack/repos/builtin/packages/py-typing/package.py index ee713c9213..af7679b62b 100644 --- a/var/spack/repos/builtin/packages/py-typing/package.py +++ b/var/spack/repos/builtin/packages/py-typing/package.py @@ -13,8 +13,6 @@ class PyTyping(PythonPackage): homepage = "https://docs.python.org/3/library/typing.html" url = "https://pypi.io/packages/source/t/typing/typing-3.7.4.1.tar.gz" - import_modules = ['typing'] - version('3.7.4.1', sha256='91dfe6f3f706ee8cc32d38edbbf304e9b7583fb37108fef38229617f8b3eba23') version('3.6.6', sha256='4027c5f6127a6267a435201981ba156de91ad0d1d98e9ddc2aa173453453492d') version('3.6.4', sha256='d400a9344254803a2368533e4533a4200d21eb7b6b729c173bc38201a74db3f2') diff --git a/var/spack/repos/builtin/packages/py-update-checker/package.py b/var/spack/repos/builtin/packages/py-update-checker/package.py index a1fbc7f368..8f65ee735b 100644 --- a/var/spack/repos/builtin/packages/py-update-checker/package.py +++ b/var/spack/repos/builtin/packages/py-update-checker/package.py @@ -16,7 +16,6 @@ class PyUpdateChecker(PythonPackage): version('0.17', sha256='2def8db7f63bd45c7d19df5df570f3f3dfeb1a1f050869d7036529295db10e62') depends_on('py-setuptools', type='build') - depends_on('py-pytest@2.7.3:', type='test') depends_on('python@3.6:', type=('build', 'run'), when='@0.18.0:') depends_on('python@2.7:2.8,3.3:', type=('build', 'run'), when='@0.17') depends_on('py-requests@2.3.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-urllib3/package.py b/var/spack/repos/builtin/packages/py-urllib3/package.py index cbe4577ca4..8a3b5aea58 100644 --- a/var/spack/repos/builtin/packages/py-urllib3/package.py +++ b/var/spack/repos/builtin/packages/py-urllib3/package.py @@ -21,9 +21,6 @@ class PyUrllib3(PythonPackage): depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-pytest', type='test') - depends_on('py-mock', type='test') - depends_on('py-tornado', type='test') variant('secure', default=False, description='Add SSL/TLS support') depends_on('py-pyopenssl@0.14:', when='+secure') diff --git a/var/spack/repos/builtin/packages/py-usgs/package.py b/var/spack/repos/builtin/packages/py-usgs/package.py index 69f2b97056..ac6ee2c31f 100644 --- a/var/spack/repos/builtin/packages/py-usgs/package.py +++ b/var/spack/repos/builtin/packages/py-usgs/package.py @@ -17,8 +17,6 @@ class PyUsgs(PythonPackage): version('0.2.7', sha256='484e569ea1baf9574e11ccf15219957364690dcf06ee3d09afef030df944e79b') depends_on('py-setuptools', type='build') - depends_on('py-mock', type='test') - depends_on('py-pytest@2.8.7', type='test') depends_on('py-click@4.0:', type=('build', 'run')) depends_on('py-requests@2.7.0:', type=('build', 'run')) depends_on('py-requests-futures@0.9.5:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-vermin/package.py b/var/spack/repos/builtin/packages/py-vermin/package.py index bff9e0fc57..b3cb73bc73 100644 --- a/var/spack/repos/builtin/packages/py-vermin/package.py +++ b/var/spack/repos/builtin/packages/py-vermin/package.py @@ -11,7 +11,6 @@ class PyVermin(PythonPackage): url = "https://github.com/netromdk/vermin/archive/v1.0.3.tar.gz" maintainers = ['netromdk'] - import_modules = ['vermin'] version('1.0.3', sha256='1503be05b55cacde1278a1fe55304d8ee889ddef8ba16e120ac6686259bec95c') version('1.0.2', sha256='e999d5f5455e1116b366cd1dcc6fecd254c7ae3606549a61bc044216f9bb5b55') @@ -24,5 +23,7 @@ class PyVermin(PythonPackage): depends_on('python@2.7:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) - def test(self): + @run_after('build') + @on_package_attributes(run_tests=True) + def build_test(self): make('test') diff --git a/var/spack/repos/builtin/packages/py-wand/package.py b/var/spack/repos/builtin/packages/py-wand/package.py index 17a5af30b3..95fab4eeae 100644 --- a/var/spack/repos/builtin/packages/py-wand/package.py +++ b/var/spack/repos/builtin/packages/py-wand/package.py @@ -24,7 +24,3 @@ class PyWand(PythonPackage): depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) depends_on('py-sphinx@1:', type='build', when='+docs') - - depends_on('py-pytest@2.3.0:', type='test') - depends_on('py-pytest-xdist@1.8:', type='test') - depends_on('py-psutil@1.0.1:', type='test') diff --git a/var/spack/repos/builtin/packages/py-wasabi/package.py b/var/spack/repos/builtin/packages/py-wasabi/package.py index c03d14f3e1..2e3939b582 100644 --- a/var/spack/repos/builtin/packages/py-wasabi/package.py +++ b/var/spack/repos/builtin/packages/py-wasabi/package.py @@ -13,4 +13,3 @@ class PyWasabi(PythonPackage): version('0.6.0', sha256='b8dd3e963cd693fde1eb6bfbecf51790171aa3534fa299faf35cf269f2fd6063') depends_on('py-setuptools', type='build') - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-werkzeug/package.py b/var/spack/repos/builtin/packages/py-werkzeug/package.py index 876deeb445..6119a118ac 100644 --- a/var/spack/repos/builtin/packages/py-werkzeug/package.py +++ b/var/spack/repos/builtin/packages/py-werkzeug/package.py @@ -19,6 +19,3 @@ class PyWerkzeug(PythonPackage): depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-pytest', type='test') - depends_on('py-hypothesis', type='test') - depends_on('py-requests', type='test') diff --git a/var/spack/repos/builtin/packages/py-wheel/package.py b/var/spack/repos/builtin/packages/py-wheel/package.py index 846d315650..1209d6a283 100644 --- a/var/spack/repos/builtin/packages/py-wheel/package.py +++ b/var/spack/repos/builtin/packages/py-wheel/package.py @@ -25,5 +25,3 @@ class PyWheel(PythonPackage): depends_on('py-setuptools@40.9.0:', when='@0.34.1:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) depends_on('py-setuptools-scm@3.4:', when='@0.34.0', type='build') - depends_on('py-pytest@3.0.0:', type='test') - depends_on('py-pytest-cov', type='test') diff --git a/var/spack/repos/builtin/packages/py-wub/package.py b/var/spack/repos/builtin/packages/py-wub/package.py index 13e6309667..ec7dd636d3 100644 --- a/var/spack/repos/builtin/packages/py-wub/package.py +++ b/var/spack/repos/builtin/packages/py-wub/package.py @@ -17,13 +17,13 @@ class PyWub(PythonPackage): version('0.4.0', sha256='1526aa392bccac71b872211c45f5b403ad3d55f5762e0ed34ff9086bc1dab6fd') depends_on('py-six', type=('build', 'run')) - depends_on('py-pytest', type=('build', 'run', 'test')) - depends_on('py-pycmd', type=('build', 'run', 'test')) + depends_on('py-pytest', type=('build', 'run')) + depends_on('py-pycmd', type=('build', 'run')) depends_on('py-biopython', type=('build', 'run')) - depends_on('py-numpy', type=('build', 'run', 'test')) + depends_on('py-numpy', type=('build', 'run')) depends_on('py-matplotlib', type=('build', 'run')) depends_on('py-seaborn', type=('build', 'run')) - depends_on('py-editdistance', type=('build', 'run', 'test')) + depends_on('py-editdistance', type=('build', 'run')) depends_on('py-pandas@0.20.2:', type=('build', 'run')) depends_on('py-pysam', type=('build', 'run')) depends_on('py-tqdm', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-wxmplot/package.py b/var/spack/repos/builtin/packages/py-wxmplot/package.py index 0d88748979..7b39f323c6 100644 --- a/var/spack/repos/builtin/packages/py-wxmplot/package.py +++ b/var/spack/repos/builtin/packages/py-wxmplot/package.py @@ -12,8 +12,6 @@ class PyWxmplot(PythonPackage): homepage = "https://newville.github.io/wxmplot/" url = "https://pypi.io/packages/source/w/wxmplot/wxmplot-0.9.38.tar.gz" - import_modules = ['wxmplot'] - version('0.9.38', sha256='82dc64abb42bdd03ec7067a3aa2a475001f2bc8e4772149bae47facf460c0081') depends_on('py-setuptools', type='build') @@ -21,4 +19,3 @@ class PyWxmplot(PythonPackage): depends_on('py-six@1.10:', type=('build', 'run')) depends_on('py-matplotlib@2.0:', type=('build', 'run')) depends_on('py-wxpython@4.0.3:', type=('build', 'run')) - depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-wxpython/package.py b/var/spack/repos/builtin/packages/py-wxpython/package.py index 0eef3935f0..53c30684d2 100644 --- a/var/spack/repos/builtin/packages/py-wxpython/package.py +++ b/var/spack/repos/builtin/packages/py-wxpython/package.py @@ -12,18 +12,6 @@ class PyWxpython(PythonPackage): homepage = "https://www.wxpython.org/" url = "https://pypi.io/packages/source/w/wxPython/wxPython-4.0.6.tar.gz" - import_modules = [ - 'wx', 'wx.tools', 'wx.py', 'wx.lib', 'wx.lib.analogclock', - 'wx.lib.floatcanvas', 'wx.lib.plot', 'wx.lib.mixins', 'wx.lib.gizmos', - 'wx.lib.art', 'wx.lib.pdfviewer', 'wx.lib.colourchooser', - 'wx.lib.masked', 'wx.lib.ogl', 'wx.lib.wxcairo', 'wx.lib.agw', - 'wx.lib.pubsub', 'wx.lib.editor', 'wx.lib.analogclock.lib_setup', - 'wx.lib.floatcanvas.Utilities', 'wx.lib.plot.examples', - 'wx.lib.agw.aui', 'wx.lib.agw.ribbon', 'wx.lib.agw.persist', - 'wx.lib.pubsub.core', 'wx.lib.pubsub.utils', 'wx.lib.pubsub.core.arg1', - 'wx.lib.pubsub.core.kwargs' - ] - version('4.0.6', sha256='35cc8ae9dd5246e2c9861bb796026bbcb9fb083e4d49650f776622171ecdab37') depends_on('wxwidgets') diff --git a/var/spack/repos/builtin/packages/py-yahmm/package.py b/var/spack/repos/builtin/packages/py-yahmm/package.py index a612930d49..d63ba0e6ee 100644 --- a/var/spack/repos/builtin/packages/py-yahmm/package.py +++ b/var/spack/repos/builtin/packages/py-yahmm/package.py @@ -19,4 +19,3 @@ class PyYahmm(PythonPackage): depends_on('py-scipy@0.13.3:', type=('build', 'run')) depends_on('py-matplotlib@1.3.1:', type=('build', 'run')) depends_on('py-networkx@1.8.1:', type=('build', 'run')) - depends_on('py-nose@1.3.3:', type='test') diff --git a/var/spack/repos/builtin/packages/py-zope-event/package.py b/var/spack/repos/builtin/packages/py-zope-event/package.py index 6ad1049a89..177992a9ef 100644 --- a/var/spack/repos/builtin/packages/py-zope-event/package.py +++ b/var/spack/repos/builtin/packages/py-zope-event/package.py @@ -12,10 +12,6 @@ class PyZopeEvent(PythonPackage): homepage = "http://github.com/zopefoundation/zope.event" url = "https://pypi.io/packages/source/z/zope.event/zope.event-4.3.0.tar.gz" - # FIXME: No idea why this import test fails. - # Maybe some kind of namespace issue? - # import_modules = ['zope.event'] - version('4.3.0', sha256='e0ecea24247a837c71c106b0341a7a997e3653da820d21ef6c08b32548f733e7') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-zope-interface/package.py b/var/spack/repos/builtin/packages/py-zope-interface/package.py index 7a45399ea8..4ce3314175 100644 --- a/var/spack/repos/builtin/packages/py-zope-interface/package.py +++ b/var/spack/repos/builtin/packages/py-zope-interface/package.py @@ -15,10 +15,6 @@ class PyZopeInterface(PythonPackage): homepage = "https://github.com/zopefoundation/zope.interface" url = "https://pypi.io/packages/source/z/zope.interface/zope.interface-4.5.0.tar.gz" - # FIXME: No idea why these import tests fail. - # Maybe some kind of namespace issue? - # import_modules = ['zope.interface', 'zope.interface.common'] - version('5.1.0', sha256='40e4c42bd27ed3c11b2c983fecfb03356fae1209de10686d03c02c8696a1d90e') version('4.5.0', sha256='57c38470d9f57e37afb460c399eb254e7193ac7fb8042bd09bdc001981a9c74c') @@ -26,6 +22,3 @@ class PyZopeInterface(PythonPackage): depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@5.1.0:') depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-zope-event', type='test') - depends_on('py-nose', type='test') - depends_on('py-coverage', type='test') diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index 4d0df211e6..9737fc0830 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -945,13 +945,20 @@ class Python(AutotoolsPackage): env.set('PYTHONPATH', pythonpath) def setup_dependent_run_environment(self, env, dependent_spec): - # For run time environment set only the path for - # dependent_spec and prepend it to PYTHONPATH - if dependent_spec.package.extends(self.spec): - for lib in ['lib', 'lib64']: - env.prepend_path('PYTHONPATH', join_path( - dependent_spec.prefix, lib, - 'python' + str(self.version.up_to(2)), 'site-packages')) + python_paths = [] + for d in dependent_spec.traverse(deptype='run'): + if d.package.extends(self.spec): + # Python libraries may be installed in lib or lib64 + # See issues #18520 and #17126 + for lib in ['lib', 'lib64']: + root = join_path( + d.prefix, lib, 'python' + str(self.version.up_to(2)), + 'site-packages') + if os.path.exists(root): + python_paths.append(root) + + pythonpath = ':'.join(python_paths) + env.prepend_path('PYTHONPATH', pythonpath) def setup_dependent_package(self, module, dependent_spec): """Called before python modules' install() methods. -- cgit v1.2.3-70-g09d2