PythonPackage: add import module smoke tests (#20023)
This commit is contained in:
parent
cd496a20e9
commit
826cd07cf7
241 changed files with 335 additions and 1046 deletions
|
@ -90,7 +90,7 @@ Instead of using the ``PythonPackage`` base class, you should extend
|
||||||
the ``Package`` base class and implement the following custom installation
|
the ``Package`` base class and implement the following custom installation
|
||||||
procedure:
|
procedure:
|
||||||
|
|
||||||
.. code-block::
|
.. code-block:: python
|
||||||
|
|
||||||
def install(self, spec, prefix):
|
def install(self, spec, prefix):
|
||||||
pip = which('pip')
|
pip = which('pip')
|
||||||
|
@ -255,7 +255,7 @@ Many packages are hosted on PyPI, but are developed on GitHub or another
|
||||||
version control systems. The tarball can be downloaded from either
|
version control systems. The tarball can be downloaded from either
|
||||||
location, but PyPI is preferred for the following reasons:
|
location, but PyPI is preferred for the following reasons:
|
||||||
|
|
||||||
#. PyPI contains the bare minimum of files to install the package.
|
#. PyPI contains the bare minimum number of files needed to install the package.
|
||||||
|
|
||||||
You may notice that the tarball you download from PyPI does not
|
You may notice that the tarball you download from PyPI does not
|
||||||
have the same checksum as the tarball you download from GitHub.
|
have the same checksum as the tarball you download from GitHub.
|
||||||
|
@ -292,19 +292,6 @@ location, but PyPI is preferred for the following reasons:
|
||||||
PyPI is nice because it makes it physically impossible to
|
PyPI is nice because it makes it physically impossible to
|
||||||
re-release the same version of a package with a different checksum.
|
re-release the same version of a package with a different checksum.
|
||||||
|
|
||||||
There are some reasons to prefer downloading from GitHub:
|
|
||||||
|
|
||||||
#. The GitHub tarball may contain unit tests.
|
|
||||||
|
|
||||||
As previously mentioned, the PyPI tarball contains the bare minimum
|
|
||||||
of files to install the package. Unless explicitly specified by the
|
|
||||||
developers, it will not contain development files like unit tests.
|
|
||||||
If you desire to run the unit tests during installation, you should
|
|
||||||
use the GitHub tarball instead.
|
|
||||||
|
|
||||||
If you really want to run these unit tests, no one will stop you from
|
|
||||||
submitting a PR for a new package that downloads from GitHub.
|
|
||||||
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
Build system dependencies
|
Build system dependencies
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
@ -569,7 +556,8 @@ If the package uses ``setuptools``, check for the following clues:
|
||||||
|
|
||||||
These are packages that are required to run the unit tests for the
|
These are packages that are required to run the unit tests for the
|
||||||
package. These dependencies can be specified using the
|
package. These dependencies can be specified using the
|
||||||
``type='test'`` dependency type.
|
``type='test'`` dependency type. However, the PyPI tarballs rarely
|
||||||
|
contain unit tests, so there is usually no reason to add these.
|
||||||
|
|
||||||
In the root directory of the package, you may notice a
|
In the root directory of the package, you may notice a
|
||||||
``requirements.txt`` file. It may look like this file contains a list
|
``requirements.txt`` file. It may look like this file contains a list
|
||||||
|
@ -625,7 +613,8 @@ add run-time dependencies if they aren't needed, so you need to
|
||||||
determine whether or not setuptools is needed. Grep the installation
|
determine whether or not setuptools is needed. Grep the installation
|
||||||
directory for any files containing a reference to ``setuptools`` or
|
directory for any files containing a reference to ``setuptools`` or
|
||||||
``pkg_resources``. Both modules come from ``py-setuptools``.
|
``pkg_resources``. Both modules come from ``py-setuptools``.
|
||||||
``pkg_resources`` is particularly common in scripts in ``prefix/bin``.
|
``pkg_resources`` is particularly common in scripts found in
|
||||||
|
``prefix/bin``.
|
||||||
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
Passing arguments to setup.py
|
Passing arguments to setup.py
|
||||||
|
@ -699,49 +688,65 @@ a "package" is a directory containing files like:
|
||||||
foo/baz.py
|
foo/baz.py
|
||||||
|
|
||||||
|
|
||||||
whereas a "module" is a single Python file. Since ``find_packages``
|
whereas a "module" is a single Python file.
|
||||||
only returns packages, you'll have to determine the correct module
|
|
||||||
names yourself. You can now add these packages and modules to the
|
The ``PythonPackage`` base class automatically detects these module
|
||||||
package like so:
|
names for you. If, for whatever reason, the module names detected
|
||||||
|
are wrong, you can provide the names yourself by overriding
|
||||||
|
``import_modules`` like so:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
import_modules = ['six']
|
import_modules = ['six']
|
||||||
|
|
||||||
|
|
||||||
When you run ``spack install --test=root py-six``, Spack will attempt
|
Sometimes the list of module names to import depends on how the
|
||||||
to import the ``six`` module after installation.
|
package was built. For example, the ``py-pyyaml`` package has a
|
||||||
|
``+libyaml`` variant that enables the build of a faster optimized
|
||||||
|
version of the library. If the user chooses ``~libyaml``, only the
|
||||||
|
``yaml`` library will be importable. If the user chooses ``+libyaml``,
|
||||||
|
both the ``yaml`` and ``yaml.cyaml`` libraries will be available.
|
||||||
|
This can be expressed like so:
|
||||||
|
|
||||||
These tests most often catch missing dependencies and non-RPATHed
|
.. code-block:: python
|
||||||
|
|
||||||
|
@property
|
||||||
|
def import_modules(self):
|
||||||
|
modules = ['yaml']
|
||||||
|
|
||||||
|
if '+libyaml' in self.spec:
|
||||||
|
modules.append('yaml.cyaml')
|
||||||
|
|
||||||
|
return modules
|
||||||
|
|
||||||
|
|
||||||
|
These tests often catch missing dependencies and non-RPATHed
|
||||||
libraries. Make sure not to add modules/packages containing the word
|
libraries. Make sure not to add modules/packages containing the word
|
||||||
"test", as these likely won't end up in installation directory.
|
"test", as these likely won't end up in the installation directory,
|
||||||
|
or may require test dependencies like pytest to be installed.
|
||||||
|
|
||||||
|
These tests can be triggered by running ``spack install --test=root``
|
||||||
|
or by running ``spack test run`` after the installation has finished.
|
||||||
|
|
||||||
""""""""""
|
""""""""""
|
||||||
Unit tests
|
Unit tests
|
||||||
""""""""""
|
""""""""""
|
||||||
|
|
||||||
The package you want to install may come with additional unit tests.
|
The package you want to install may come with additional unit tests.
|
||||||
By default, Spack runs:
|
You can add additional build-time or install-time tests by adding
|
||||||
|
additional testing functions. For example, ``py-numpy`` adds:
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ python setup.py test
|
|
||||||
|
|
||||||
|
|
||||||
if it detects that the ``setup.py`` file supports a ``test`` phase.
|
|
||||||
You can add additional build-time or install-time tests by overriding
|
|
||||||
``test`` or adding a custom install-time test function. For example,
|
|
||||||
``py-numpy`` adds:
|
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
install_time_test_callbacks = ['install_test', 'import_module_test']
|
@run_after('install')
|
||||||
|
@on_package_attributes(run_tests=True)
|
||||||
def install_test(self):
|
def install_test(self):
|
||||||
with working_dir('..'):
|
with working_dir('spack-test', create=True):
|
||||||
python('-c', 'import numpy; numpy.test("full", verbose=2)')
|
python('-c', 'import numpy; numpy.test("full", verbose=2)')
|
||||||
|
|
||||||
|
|
||||||
|
These tests can be triggered by running ``spack install --test=root``.
|
||||||
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
Setup file in a sub-directory
|
Setup file in a sub-directory
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
@ -781,7 +786,7 @@ PythonPackage vs. packages that use Python
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
There are many packages that make use of Python, but packages that depend
|
There are many packages that make use of Python, but packages that depend
|
||||||
on Python are not necessarily ``PythonPackages``.
|
on Python are not necessarily ``PythonPackage``'s.
|
||||||
|
|
||||||
"""""""""""""""""""""""
|
"""""""""""""""""""""""
|
||||||
Choosing a build system
|
Choosing a build system
|
||||||
|
@ -878,8 +883,8 @@ and ``pip`` may be a perfectly valid alternative to using Spack. The
|
||||||
main advantage of Spack over ``pip`` is its ability to compile
|
main advantage of Spack over ``pip`` is its ability to compile
|
||||||
non-Python dependencies. It can also build cythonized versions of a
|
non-Python dependencies. It can also build cythonized versions of a
|
||||||
package or link to an optimized BLAS/LAPACK library like MKL,
|
package or link to an optimized BLAS/LAPACK library like MKL,
|
||||||
resulting in calculations that run orders of magnitude faster.
|
resulting in calculations that run orders of magnitudes faster.
|
||||||
Spack does not offer a significant advantage to other python-management
|
Spack does not offer a significant advantage over other python-management
|
||||||
systems for installing and using tools like flake8 and sphinx.
|
systems for installing and using tools like flake8 and sphinx.
|
||||||
But if you need packages with non-Python dependencies like
|
But if you need packages with non-Python dependencies like
|
||||||
numpy and scipy, Spack will be very valuable to you.
|
numpy and scipy, Spack will be very valuable to you.
|
||||||
|
|
|
@ -93,10 +93,17 @@ in the site-packages directory:
|
||||||
$ python
|
$ python
|
||||||
>>> import setuptools
|
>>> import setuptools
|
||||||
>>> setuptools.find_packages()
|
>>> setuptools.find_packages()
|
||||||
['QtPy5']
|
[
|
||||||
|
'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'
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
Large, complex packages like ``QtPy5`` will return a long list of
|
Large, complex packages like ``py-pyqt5`` will return a long list of
|
||||||
packages, while other packages may return an empty list. These packages
|
packages, while other packages may return an empty list. These packages
|
||||||
only install a single ``foo.py`` file. In Python packaging lingo,
|
only install a single ``foo.py`` file. In Python packaging lingo,
|
||||||
a "package" is a directory containing files like:
|
a "package" is a directory containing files like:
|
||||||
|
@ -108,21 +115,25 @@ a "package" is a directory containing files like:
|
||||||
foo/baz.py
|
foo/baz.py
|
||||||
|
|
||||||
|
|
||||||
whereas a "module" is a single Python file. Since ``find_packages``
|
whereas a "module" is a single Python file.
|
||||||
only returns packages, you'll have to determine the correct module
|
|
||||||
names yourself. You can now add these packages and modules to the
|
The ``SIPPackage`` base class automatically detects these module
|
||||||
package like so:
|
names for you. If, for whatever reason, the module names detected
|
||||||
|
are wrong, you can provide the names yourself by overriding
|
||||||
|
``import_modules`` like so:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
import_modules = ['PyQt5']
|
import_modules = ['PyQt5']
|
||||||
|
|
||||||
|
|
||||||
When you run ``spack install --test=root py-pyqt5``, Spack will attempt
|
These tests often catch missing dependencies and non-RPATHed
|
||||||
to import the ``PyQt5`` module after installation.
|
libraries. Make sure not to add modules/packages containing the word
|
||||||
|
"test", as these likely won't end up in the installation directory,
|
||||||
|
or may require test dependencies like pytest to be installed.
|
||||||
|
|
||||||
These tests most often catch missing dependencies and non-RPATHed
|
These tests can be triggered by running ``spack install --test=root``
|
||||||
libraries.
|
or by running ``spack test run`` after the installation has finished.
|
||||||
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
External documentation
|
External documentation
|
||||||
|
|
|
@ -10,8 +10,9 @@
|
||||||
from spack.package import PackageBase, run_after
|
from spack.package import PackageBase, run_after
|
||||||
|
|
||||||
from llnl.util.filesystem import (working_dir, get_filetype, filter_file,
|
from llnl.util.filesystem import (working_dir, get_filetype, filter_file,
|
||||||
path_contains_subdirectory, same_path)
|
path_contains_subdirectory, same_path, find)
|
||||||
from llnl.util.lang import match_predicate
|
from llnl.util.lang import match_predicate
|
||||||
|
import llnl.util.tty as tty
|
||||||
|
|
||||||
|
|
||||||
class PythonPackage(PackageBase):
|
class PythonPackage(PackageBase):
|
||||||
|
@ -74,25 +75,12 @@ def configure(self, spec, prefix):
|
||||||
# Default phases
|
# Default phases
|
||||||
phases = ['build', 'install']
|
phases = ['build', 'install']
|
||||||
|
|
||||||
# Name of modules that the Python package provides
|
|
||||||
# This is used to test whether or not the installation succeeded
|
|
||||||
# These names generally come from running:
|
|
||||||
#
|
|
||||||
# >>> import setuptools
|
|
||||||
# >>> setuptools.find_packages()
|
|
||||||
#
|
|
||||||
# in the source tarball directory
|
|
||||||
import_modules = []
|
|
||||||
|
|
||||||
# To be used in UI queries that require to know which
|
# To be used in UI queries that require to know which
|
||||||
# build-system class we are using
|
# build-system class we are using
|
||||||
build_system_class = 'PythonPackage'
|
build_system_class = 'PythonPackage'
|
||||||
|
|
||||||
#: Callback names for build-time test
|
|
||||||
build_time_test_callbacks = ['build_test']
|
|
||||||
|
|
||||||
#: Callback names for install-time test
|
#: Callback names for install-time test
|
||||||
install_time_test_callbacks = ['import_module_test']
|
install_time_test_callbacks = ['test']
|
||||||
|
|
||||||
extends('python')
|
extends('python')
|
||||||
|
|
||||||
|
@ -100,6 +88,45 @@ def configure(self, spec, prefix):
|
||||||
|
|
||||||
py_namespace = None
|
py_namespace = None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def import_modules(self):
|
||||||
|
"""Names of modules that the Python package provides.
|
||||||
|
|
||||||
|
These are used to test whether or not the installation succeeded.
|
||||||
|
These names generally come from running:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
>> import setuptools
|
||||||
|
>> setuptools.find_packages()
|
||||||
|
|
||||||
|
in the source tarball directory. If the module names are incorrectly
|
||||||
|
detected, this property can be overridden by the package.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
list: list of strings of module names
|
||||||
|
"""
|
||||||
|
modules = []
|
||||||
|
|
||||||
|
# Python libraries may be installed in lib or lib64
|
||||||
|
# See issues #18520 and #17126
|
||||||
|
for lib in ['lib', 'lib64']:
|
||||||
|
root = os.path.join(self.prefix, lib, 'python{0}'.format(
|
||||||
|
self.spec['python'].version.up_to(2)), 'site-packages')
|
||||||
|
# Some Python libraries are packages: collections of modules
|
||||||
|
# distributed in directories containing __init__.py files
|
||||||
|
for path in find(root, '__init__.py', recursive=True):
|
||||||
|
modules.append(path.replace(root + os.sep, '', 1).replace(
|
||||||
|
os.sep + '__init__.py', '').replace('/', '.'))
|
||||||
|
# Some Python libraries are modules: individual *.py files
|
||||||
|
# found in the site-packages directory
|
||||||
|
for path in find(root, '*.py', recursive=False):
|
||||||
|
modules.append(path.replace(root + os.sep, '', 1).replace(
|
||||||
|
'.py', '').replace('/', '.'))
|
||||||
|
|
||||||
|
tty.debug('Detected the following modules: {0}'.format(modules))
|
||||||
|
return modules
|
||||||
|
|
||||||
def setup_file(self):
|
def setup_file(self):
|
||||||
"""Returns the name of the setup file to use."""
|
"""Returns the name of the setup file to use."""
|
||||||
return 'setup.py'
|
return 'setup.py'
|
||||||
|
@ -118,27 +145,6 @@ def setup_py(self, *args, **kwargs):
|
||||||
with working_dir(self.build_directory):
|
with working_dir(self.build_directory):
|
||||||
self.python('-s', setup, '--no-user-cfg', *args, **kwargs)
|
self.python('-s', setup, '--no-user-cfg', *args, **kwargs)
|
||||||
|
|
||||||
def _setup_command_available(self, command):
|
|
||||||
"""Determines whether or not a setup.py command exists.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
command (str): The command to look for
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
bool: True if the command is found, else False
|
|
||||||
"""
|
|
||||||
kwargs = {
|
|
||||||
'output': os.devnull,
|
|
||||||
'error': os.devnull,
|
|
||||||
'fail_on_error': False
|
|
||||||
}
|
|
||||||
|
|
||||||
python = inspect.getmodule(self).python
|
|
||||||
setup = self.setup_file()
|
|
||||||
|
|
||||||
python('-s', setup, '--no-user-cfg', command, '--help', **kwargs)
|
|
||||||
return python.returncode == 0
|
|
||||||
|
|
||||||
# The following phases and their descriptions come from:
|
# The following phases and their descriptions come from:
|
||||||
# $ python setup.py --help-commands
|
# $ python setup.py --help-commands
|
||||||
|
|
||||||
|
@ -359,33 +365,16 @@ def check_args(self, spec, prefix):
|
||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
|
|
||||||
def build_test(self):
|
def test(self):
|
||||||
"""Run unit tests after in-place build.
|
"""Attempts to import modules of the installed package."""
|
||||||
|
|
||||||
These tests are only run if the package actually has a 'test' command.
|
|
||||||
"""
|
|
||||||
if self._setup_command_available('test'):
|
|
||||||
args = self.test_args(self.spec, self.prefix)
|
|
||||||
|
|
||||||
self.setup_py('test', *args)
|
|
||||||
|
|
||||||
def test_args(self, spec, prefix):
|
|
||||||
"""Arguments to pass to test."""
|
|
||||||
return []
|
|
||||||
|
|
||||||
run_after('build')(PackageBase._run_default_build_time_test_callbacks)
|
|
||||||
|
|
||||||
def import_module_test(self):
|
|
||||||
"""Attempts to import the module that was just installed.
|
|
||||||
|
|
||||||
This test is only run if the package overrides
|
|
||||||
:py:attr:`import_modules` with a list of module names."""
|
|
||||||
|
|
||||||
# Make sure we are importing the installed modules,
|
# Make sure we are importing the installed modules,
|
||||||
# not the ones in the current directory
|
# not the ones in the source directory
|
||||||
with working_dir('spack-test', create=True):
|
for module in self.import_modules:
|
||||||
for module in self.import_modules:
|
self.run_test(inspect.getmodule(self).python.path,
|
||||||
self.python('-c', 'import {0}'.format(module))
|
['-c', 'import {0}'.format(module)],
|
||||||
|
purpose='checking import of {0}'.format(module),
|
||||||
|
work_dir='spack-test')
|
||||||
|
|
||||||
run_after('install')(PackageBase._run_default_install_time_test_callbacks)
|
run_after('install')(PackageBase._run_default_install_time_test_callbacks)
|
||||||
|
|
||||||
|
|
|
@ -4,11 +4,12 @@
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
import inspect
|
import inspect
|
||||||
|
import os
|
||||||
|
|
||||||
from llnl.util.filesystem import working_dir, join_path
|
from llnl.util.filesystem import working_dir, join_path
|
||||||
|
from spack.build_systems.python import PythonPackage
|
||||||
from spack.directives import depends_on, extends
|
from spack.directives import depends_on, extends
|
||||||
from spack.package import PackageBase, run_after
|
from spack.package import PackageBase, run_after
|
||||||
import os
|
|
||||||
|
|
||||||
|
|
||||||
class SIPPackage(PackageBase):
|
class SIPPackage(PackageBase):
|
||||||
|
@ -36,13 +37,15 @@ class SIPPackage(PackageBase):
|
||||||
sip_module = 'sip'
|
sip_module = 'sip'
|
||||||
|
|
||||||
#: Callback names for install-time test
|
#: Callback names for install-time test
|
||||||
install_time_test_callbacks = ['import_module_test']
|
install_time_test_callbacks = ['test']
|
||||||
|
|
||||||
extends('python')
|
extends('python')
|
||||||
|
|
||||||
depends_on('qt')
|
depends_on('qt')
|
||||||
depends_on('py-sip')
|
depends_on('py-sip')
|
||||||
|
|
||||||
|
import_modules = PythonPackage.import_modules
|
||||||
|
|
||||||
def python(self, *args, **kwargs):
|
def python(self, *args, **kwargs):
|
||||||
"""The python ``Executable``."""
|
"""The python ``Executable``."""
|
||||||
inspect.getmodule(self).python(*args, **kwargs)
|
inspect.getmodule(self).python(*args, **kwargs)
|
||||||
|
@ -98,17 +101,7 @@ def install_args(self):
|
||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
|
|
||||||
def import_module_test(self):
|
test = PythonPackage.test
|
||||||
"""Attempts to import the module that was just installed.
|
|
||||||
|
|
||||||
This test is only run if the package overrides
|
|
||||||
:py:attr:`import_modules` with a list of module names."""
|
|
||||||
|
|
||||||
# Make sure we are importing the installed modules,
|
|
||||||
# not the ones in the current directory
|
|
||||||
with working_dir('spack-test', create=True):
|
|
||||||
for module in self.import_modules:
|
|
||||||
self.python('-c', 'import {0}'.format(module))
|
|
||||||
|
|
||||||
run_after('install')(PackageBase._run_default_install_time_test_callbacks)
|
run_after('install')(PackageBase._run_default_install_time_test_callbacks)
|
||||||
|
|
||||||
|
|
|
@ -1761,7 +1761,7 @@ def run_test(self, exe, options=[], expected=[], status=0,
|
||||||
work_dir (str or None): path to the smoke test directory
|
work_dir (str or None): path to the smoke test directory
|
||||||
"""
|
"""
|
||||||
wdir = '.' if work_dir is None else work_dir
|
wdir = '.' if work_dir is None else work_dir
|
||||||
with fsys.working_dir(wdir):
|
with fsys.working_dir(wdir, create=True):
|
||||||
try:
|
try:
|
||||||
runner = which(exe)
|
runner = which(exe)
|
||||||
if runner is None and skip_missing:
|
if runner is None and skip_missing:
|
||||||
|
|
|
@ -18,10 +18,6 @@ class AwsParallelcluster(PythonPackage):
|
||||||
'sean-smith', 'demartinofra', 'enrico-usai', 'lukeseawalker', 'rexcsn',
|
'sean-smith', 'demartinofra', 'enrico-usai', 'lukeseawalker', 'rexcsn',
|
||||||
'ddeidda', 'tilne'
|
'ddeidda', 'tilne'
|
||||||
]
|
]
|
||||||
import_modules = [
|
|
||||||
'pcluster', 'awsbatch', 'pcluster.dcv', 'pcluster.configure',
|
|
||||||
'pcluster.config', 'pcluster.networking'
|
|
||||||
]
|
|
||||||
|
|
||||||
version('2.10.0', sha256='a7a27871b4f54cb913b0c1233e675131e9b2099549af0840d32c36b7e91b104b')
|
version('2.10.0', sha256='a7a27871b4f54cb913b0c1233e675131e9b2099549af0840d32c36b7e91b104b')
|
||||||
version('2.9.1', sha256='12dc22286cd447a16931f1f8619bdd47d4543fd0de7905d52b6c6f83ff9db8a3')
|
version('2.9.1', sha256='12dc22286cd447a16931f1f8619bdd47d4543fd0de7905d52b6c6f83ff9db8a3')
|
||||||
|
|
|
@ -21,11 +21,6 @@ class Gdal(AutotoolsPackage):
|
||||||
|
|
||||||
maintainers = ['adamjstewart']
|
maintainers = ['adamjstewart']
|
||||||
|
|
||||||
import_modules = [
|
|
||||||
'osgeo', 'osgeo.gdal', 'osgeo.ogr', 'osgeo.osr',
|
|
||||||
'osgeo.gdal_array', 'osgeo.gdalconst'
|
|
||||||
]
|
|
||||||
|
|
||||||
version('3.2.0', sha256='b051f852600ffdf07e337a7f15673da23f9201a9dbb482bd513756a3e5a196a6')
|
version('3.2.0', sha256='b051f852600ffdf07e337a7f15673da23f9201a9dbb482bd513756a3e5a196a6')
|
||||||
version('3.1.4', sha256='7b82486f71c71cec61f9b237116212ce18ef6b90f068cbbf9f7de4fc50b576a8')
|
version('3.1.4', sha256='7b82486f71c71cec61f9b237116212ce18ef6b90f068cbbf9f7de4fc50b576a8')
|
||||||
version('3.1.3', sha256='161cf55371a143826f1d76ce566db1f0a666496eeb4371aed78b1642f219d51d')
|
version('3.1.3', sha256='161cf55371a143826f1d76ce566db1f0a666496eeb4371aed78b1642f219d51d')
|
||||||
|
@ -170,6 +165,8 @@ class Gdal(AutotoolsPackage):
|
||||||
|
|
||||||
executables = ['^gdal-config$']
|
executables = ['^gdal-config$']
|
||||||
|
|
||||||
|
import_modules = PythonPackage.import_modules
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def determine_version(cls, exe):
|
def determine_version(cls, exe):
|
||||||
return Executable(exe)('--version', output=str, error=str).rstrip()
|
return Executable(exe)('--version', output=str, error=str).rstrip()
|
||||||
|
@ -553,16 +550,12 @@ def install(self, spec, prefix):
|
||||||
make('install')
|
make('install')
|
||||||
install('*.jar', prefix)
|
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')
|
@run_after('install')
|
||||||
def darwin_fix(self):
|
def darwin_fix(self):
|
||||||
# The shared library is not installed correctly on Darwin; fix this
|
# The shared library is not installed correctly on Darwin; fix this
|
||||||
if 'platform=darwin' in self.spec:
|
if 'platform=darwin' in self.spec:
|
||||||
fix_darwin_install_name(self.prefix.lib)
|
fix_darwin_install_name(self.prefix.lib)
|
||||||
|
|
||||||
|
def test(self):
|
||||||
|
if '+python' in self.spec:
|
||||||
|
PythonPackage.test(self)
|
||||||
|
|
|
@ -13,13 +13,6 @@ class Mercurial(PythonPackage):
|
||||||
homepage = "https://www.mercurial-scm.org"
|
homepage = "https://www.mercurial-scm.org"
|
||||||
url = "https://www.mercurial-scm.org/release/mercurial-5.3.tar.gz"
|
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.3', sha256='e57ff61d6b67695149dd451922b40aa455ab02e01711806a131a1e95c544f9b9')
|
||||||
version('5.1.2', sha256='15af0b090b23649e0e53621a88dde97b55a734d7cb08b77d3df284db70d44e2e')
|
version('5.1.2', sha256='15af0b090b23649e0e53621a88dde97b55a734d7cb08b77d3df284db70d44e2e')
|
||||||
version('5.1.1', sha256='35fc8ba5e0379c1b3affa2757e83fb0509e8ac314cbd9f1fd133cf265d16e49f')
|
version('5.1.1', sha256='35fc8ba5e0379c1b3affa2757e83fb0509e8ac314cbd9f1fd133cf265d16e49f')
|
||||||
|
|
|
@ -22,6 +22,8 @@ class PyAccimage(PythonPackage):
|
||||||
depends_on('py-numpy', type='test')
|
depends_on('py-numpy', type='test')
|
||||||
depends_on('py-imageio', 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 = which('pytest')
|
||||||
pytest('test.py')
|
pytest('test.py')
|
||||||
|
|
|
@ -25,4 +25,3 @@ class PyAdbEnhanced(PythonPackage):
|
||||||
depends_on('py-future', type=('build', 'run'))
|
depends_on('py-future', type=('build', 'run'))
|
||||||
depends_on('py-psutil', type=('build', 'run'))
|
depends_on('py-psutil', type=('build', 'run'))
|
||||||
depends_on('py-asyncio', type=('build', 'run'))
|
depends_on('py-asyncio', type=('build', 'run'))
|
||||||
depends_on('py-pytest', type='test')
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ class PyAenum(PythonPackage):
|
||||||
homepage = "https://bitbucket.org/stoneleaf/aenum"
|
homepage = "https://bitbucket.org/stoneleaf/aenum"
|
||||||
url = "https://pypi.io/packages/source/a/aenum/aenum-2.1.2.tar.gz"
|
url = "https://pypi.io/packages/source/a/aenum/aenum-2.1.2.tar.gz"
|
||||||
|
|
||||||
import_modules = ['aenum']
|
|
||||||
|
|
||||||
version('2.1.2', sha256='a3208e4b28db3a7b232ff69b934aef2ea1bf27286d9978e1e597d46f490e4687')
|
version('2.1.2', sha256='a3208e4b28db3a7b232ff69b934aef2ea1bf27286d9978e1e597d46f490e4687')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
|
|
19
var/spack/repos/builtin/packages/py-aiohttp-cors/package.py
Normal file
19
var/spack/repos/builtin/packages/py-aiohttp-cors/package.py
Normal file
|
@ -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'))
|
|
@ -13,11 +13,8 @@ class PyAlabaster(PythonPackage):
|
||||||
homepage = "https://alabaster.readthedocs.io/"
|
homepage = "https://alabaster.readthedocs.io/"
|
||||||
url = "https://pypi.io/packages/source/a/alabaster/alabaster-0.7.10.tar.gz"
|
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.12', sha256='a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02')
|
||||||
version('0.7.10', sha256='37cdcb9e9954ed60912ebc1ca12a9d12178c26637abdf124e3cde2341c257fe0')
|
version('0.7.10', sha256='37cdcb9e9954ed60912ebc1ca12a9d12178c26637abdf124e3cde2341c257fe0')
|
||||||
version('0.7.9', sha256='47afd43b08a4ecaa45e3496e139a193ce364571e7e10c6a87ca1a4c57eb7ea08')
|
version('0.7.9', sha256='47afd43b08a4ecaa45e3496e139a193ce364571e7e10c6a87ca1a4c57eb7ea08')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-pygments', type='test')
|
|
||||||
|
|
|
@ -18,5 +18,3 @@ class PyApipkg(PythonPackage):
|
||||||
depends_on('py-setuptools@30.3.0:', type='build')
|
depends_on('py-setuptools@30.3.0:', type='build')
|
||||||
depends_on('py-setuptools-scm', type='build')
|
depends_on('py-setuptools-scm', type='build')
|
||||||
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
|
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
|
||||||
depends_on('py-py', type='test')
|
|
||||||
depends_on('py-pytest', type='test')
|
|
||||||
|
|
|
@ -13,16 +13,8 @@ class PyAppdirs(PythonPackage):
|
||||||
homepage = "https://github.com/ActiveState/appdirs"
|
homepage = "https://github.com/ActiveState/appdirs"
|
||||||
url = "https://pypi.io/packages/source/a/appdirs/appdirs-1.4.3.tar.gz"
|
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.3', sha256='9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92')
|
||||||
version('1.4.0', sha256='8fc245efb4387a4e3e0ac8ebcc704582df7d72ff6a42a53f5600bbb18fdaadc5')
|
version('1.4.0', sha256='8fc245efb4387a4e3e0ac8ebcc704582df7d72ff6a42a53f5600bbb18fdaadc5')
|
||||||
|
|
||||||
patch('setuptools-import.patch', when='@:1.4.0')
|
patch('setuptools-import.patch', when='@:1.4.0')
|
||||||
|
depends_on('py-setuptools', type='build')
|
||||||
# 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')
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ class PyArchspec(PythonPackage):
|
||||||
|
|
||||||
maintainers = ['alalazo']
|
maintainers = ['alalazo']
|
||||||
|
|
||||||
import_modules = ['archspec']
|
|
||||||
|
|
||||||
version('0.1.1', sha256='34bafad493b41208857232e21776216d716de37ab051a6a4a1cc1653f7e26423')
|
version('0.1.1', sha256='34bafad493b41208857232e21776216d716de37ab051a6a4a1cc1653f7e26423')
|
||||||
|
|
||||||
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
|
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
|
||||||
|
|
|
@ -16,6 +16,3 @@ class PyArgon2Cffi(PythonPackage):
|
||||||
depends_on('py-cffi@1.0.0:', type=('build', 'run'))
|
depends_on('py-cffi@1.0.0:', type=('build', 'run'))
|
||||||
depends_on('py-six', type=('build', 'run'))
|
depends_on('py-six', type=('build', 'run'))
|
||||||
depends_on('py-enum34', when='^python@:3.3', 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')
|
|
||||||
|
|
|
@ -15,4 +15,3 @@ class PyArgs(PythonPackage):
|
||||||
version('0.1.0', sha256='a785b8d837625e9b61c39108532d95b85274acd679693b71ebb5156848fcf814')
|
version('0.1.0', sha256='a785b8d837625e9b61c39108532d95b85274acd679693b71ebb5156848fcf814')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-nose', type='test')
|
|
||||||
|
|
|
@ -25,6 +25,3 @@ class PyArrow(PythonPackage):
|
||||||
depends_on('py-setuptools', type='build')
|
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-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-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')
|
|
||||||
|
|
|
@ -16,4 +16,3 @@ class PyAsteval(PythonPackage):
|
||||||
|
|
||||||
depends_on('python@3.5:', type=('build', 'run'))
|
depends_on('python@3.5:', type=('build', 'run'))
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-pytest', type='test')
|
|
||||||
|
|
|
@ -18,8 +18,6 @@ class PyAstor(PythonPackage):
|
||||||
|
|
||||||
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
|
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
|
||||||
depends_on('py-setuptools', type='build')
|
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
|
# Build fails with newer versions of setuptools
|
||||||
# https://github.com/berkerpeksag/astor/issues/162
|
# https://github.com/berkerpeksag/astor/issues/162
|
||||||
|
|
|
@ -15,8 +15,6 @@ class PyAstropy(PythonPackage):
|
||||||
homepage = 'https://astropy.org/'
|
homepage = 'https://astropy.org/'
|
||||||
url = 'https://pypi.io/packages/source/a/astropy/astropy-4.0.1.post1.tar.gz'
|
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('4.0.1.post1', sha256='5c304a6c1845ca426e7bc319412b0363fccb4928cb4ba59298acd1918eec44b5')
|
||||||
version('3.2.1', sha256='706c0457789c78285e5464a5a336f5f0b058d646d60f4e5f5ba1f7d5bf424b28')
|
version('3.2.1', sha256='706c0457789c78285e5464a5a336f5f0b058d646d60f4e5f5ba1f7d5bf424b28')
|
||||||
version('2.0.14', sha256='618807068609a4d8aeb403a07624e9984f566adc0dc0f5d6b477c3658f31aeb6')
|
version('2.0.14', sha256='618807068609a4d8aeb403a07624e9984f566adc0dc0f5d6b477c3658f31aeb6')
|
||||||
|
@ -87,6 +85,8 @@ def build_args(self, spec, prefix):
|
||||||
|
|
||||||
return args
|
return args
|
||||||
|
|
||||||
|
@run_after('install')
|
||||||
|
@on_package_attributes(run_tests=True)
|
||||||
def install_test(self):
|
def install_test(self):
|
||||||
with working_dir('spack-test', create=True):
|
with working_dir('spack-test', create=True):
|
||||||
python('-c', 'import astropy; astropy.test()')
|
python('-c', 'import astropy; astropy.test()')
|
||||||
|
|
|
@ -12,8 +12,6 @@ class PyAtomicwrites(PythonPackage):
|
||||||
homepage = "https://github.com/untitaker/python-atomicwrites"
|
homepage = "https://github.com/untitaker/python-atomicwrites"
|
||||||
url = "https://pypi.io/packages/source/a/atomicwrites/atomicwrites-1.3.0.tar.gz"
|
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.3.0', sha256='75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6')
|
||||||
version('1.1.5', sha256='240831ea22da9ab882b551b31d4225591e5e447a68c5e188db5b89ca1d487585')
|
version('1.1.5', sha256='240831ea22da9ab882b551b31d4225591e5e447a68c5e188db5b89ca1d487585')
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ class PyAttrs(PythonPackage):
|
||||||
homepage = "http://attrs.org/"
|
homepage = "http://attrs.org/"
|
||||||
url = "https://pypi.io/packages/source/a/attrs/attrs-20.3.0.tar.gz"
|
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.3.0', sha256='832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700')
|
||||||
version('20.2.0', sha256='26b54ddbbb9ee1d34d5d3668dd37d6cf74990ab23c828c2888dccdceee395594')
|
version('20.2.0', sha256='26b54ddbbb9ee1d34d5d3668dd37d6cf74990ab23c828c2888dccdceee395594')
|
||||||
version('20.1.0', sha256='0ef97238856430dcf9228e07f316aefc17e8939fc8507e18c6501b761ef1a42a')
|
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('python@2.7:2.8,3.4:', type=('build', 'run'))
|
||||||
depends_on('py-setuptools', type='build')
|
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')
|
|
||||||
|
|
|
@ -18,4 +18,3 @@ class PyAwesomeSlugify(PythonPackage):
|
||||||
|
|
||||||
depends_on('py-regex', type=('build', 'run'))
|
depends_on('py-regex', type=('build', 'run'))
|
||||||
depends_on('py-unidecode@0.04.14:0.04.99', type=('build', 'run'))
|
depends_on('py-unidecode@0.04.14:0.04.99', type=('build', 'run'))
|
||||||
depends_on('py-nose', type='test')
|
|
||||||
|
|
|
@ -36,4 +36,3 @@ class PyAzureCliCore(PythonPackage):
|
||||||
depends_on('py-ndg-httpsclient', when='^python@:2.7.8', type=('build', 'run'))
|
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-pyasn1', when='^python@:2.7.8', type=('build', 'run'))
|
||||||
depends_on('py-futures', when='^python@:2', type=('build', 'run'))
|
depends_on('py-futures', when='^python@:2', type=('build', 'run'))
|
||||||
depends_on('py-mock', type='test')
|
|
||||||
|
|
|
@ -15,4 +15,3 @@ class PyAzureCliTelemetry(PythonPackage):
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-applicationinsights@0.11.1:0.11.999', type=('build', 'run'))
|
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-portalocker@1.2:1.999', type=('build', 'run'))
|
||||||
depends_on('py-mock', type='test')
|
|
||||||
|
|
|
@ -99,4 +99,3 @@ class PyAzureCli(PythonPackage):
|
||||||
depends_on('py-xmltodict@0.12:0.999', type=('build', 'run'))
|
depends_on('py-xmltodict@0.12:0.999', type=('build', 'run'))
|
||||||
depends_on('py-javaproperties@0.5.1', 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-jsondiff@1.2.0', type=('build', 'run'))
|
||||||
depends_on('py-mock@4.0:4.999', type='test')
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ class PyBabel(PythonPackage):
|
||||||
homepage = "http://babel.pocoo.org/en/latest/"
|
homepage = "http://babel.pocoo.org/en/latest/"
|
||||||
url = "https://pypi.io/packages/source/B/Babel/Babel-2.7.0.tar.gz"
|
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.7.0', sha256='e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28')
|
||||||
version('2.6.0', sha256='8cba50f48c529ca3fa18cf81fa9403be176d374ac4d60738b839122dfaaa3d23')
|
version('2.6.0', sha256='8cba50f48c529ca3fa18cf81fa9403be176d374ac4d60738b839122dfaaa3d23')
|
||||||
version('2.4.0', sha256='8c98f5e5f8f5f088571f2c6bd88d530e331cbbcb95a7311a0db69d3dca7ec563')
|
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('python@2.7:2.8,3.4:', type=('build', 'run'))
|
||||||
depends_on('py-setuptools', type=('build', 'run'))
|
depends_on('py-setuptools', type=('build', 'run'))
|
||||||
depends_on('py-pytz@2015.7:', type=('build', 'run'))
|
depends_on('py-pytz@2015.7:', type=('build', 'run'))
|
||||||
depends_on('py-pytest', type='test')
|
|
||||||
depends_on('py-freezegun', type='test')
|
|
||||||
|
|
|
@ -29,5 +29,3 @@ class PyBasisSetExchange(PythonPackage):
|
||||||
depends_on('py-jsonschema', type=('build', 'run'))
|
depends_on('py-jsonschema', type=('build', 'run'))
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('python@3:', type=('build', 'run'))
|
depends_on('python@3:', type=('build', 'run'))
|
||||||
depends_on('py-pytest@4.0:', type='test')
|
|
||||||
depends_on('py-pytest-cov', type='test')
|
|
||||||
|
|
|
@ -18,6 +18,8 @@ class PyBlack(PythonPackage):
|
||||||
version('19.3b0', sha256='68950ffd4d9169716bcb8719a56c07a2f4485354fec061cdd5910aa07369731c')
|
version('19.3b0', sha256='68950ffd4d9169716bcb8719a56c07a2f4485354fec061cdd5910aa07369731c')
|
||||||
version('18.9b0', sha256='e030a9a28f542debc08acceb273f228ac422798e5215ba2a791a6ddeaaca22a5')
|
version('18.9b0', sha256='e030a9a28f542debc08acceb273f228ac422798e5215ba2a791a6ddeaaca22a5')
|
||||||
|
|
||||||
|
variant('d', default=False, description='enable blackd HTTP server')
|
||||||
|
|
||||||
depends_on('python@3.6.0:')
|
depends_on('python@3.6.0:')
|
||||||
# Needs setuptools at runtime so that `import pkg_resources` succeeds
|
# Needs setuptools at runtime so that `import pkg_resources` succeeds
|
||||||
# See #8843 and #8689 for examples of setuptools added as a runtime dep
|
# 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-click@6.5:', type=('build', 'run'))
|
||||||
depends_on('py-appdirs', type=('build', 'run'))
|
depends_on('py-appdirs', type=('build', 'run'))
|
||||||
depends_on('py-toml@0.9.4:', 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
|
||||||
|
|
|
@ -15,4 +15,3 @@ class PyBlis(PythonPackage):
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-numpy@1.15:', type=('build', 'run'))
|
depends_on('py-numpy@1.15:', type=('build', 'run'))
|
||||||
depends_on('py-hypothesis', type='test')
|
|
||||||
|
|
|
@ -19,5 +19,3 @@ class PyBlosc(PythonPackage):
|
||||||
depends_on('python@3.6:', type=('build', 'run'))
|
depends_on('python@3.6:', type=('build', 'run'))
|
||||||
depends_on('py-scikit-build', type='build')
|
depends_on('py-scikit-build', type='build')
|
||||||
# depends_on('c-blosc') # shipped internally
|
# depends_on('c-blosc') # shipped internally
|
||||||
depends_on('py-numpy', type='test')
|
|
||||||
depends_on('py-psutil', type='test')
|
|
||||||
|
|
|
@ -12,11 +12,6 @@ class PyBoto3(PythonPackage):
|
||||||
homepage = "https://github.com/boto/boto3"
|
homepage = "https://github.com/boto/boto3"
|
||||||
url = "https://pypi.io/packages/source/b/boto3/boto3-1.10.44.tar.gz"
|
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.44', sha256='adc0c0269bd65967fd528d7cd826304f381d40d94f2bf2b09f58167e5ac05d86')
|
||||||
version('1.10.38', sha256='6cdb063b2ae5ac7b93ded6b6b17e3da1325b32232d5ff56e6800018d4786bba6')
|
version('1.10.38', sha256='6cdb063b2ae5ac7b93ded6b6b17e3da1325b32232d5ff56e6800018d4786bba6')
|
||||||
version('1.9.169', sha256='9d8bd0ca309b01265793b7e8d7b88c1df439737d77c8725988f0277bbf58d169')
|
version('1.9.169', sha256='9d8bd0ca309b01265793b7e8d7b88c1df439737d77c8725988f0277bbf58d169')
|
||||||
|
|
|
@ -12,8 +12,6 @@ class PyBotocore(PythonPackage):
|
||||||
homepage = "https://github.com/boto/botocore"
|
homepage = "https://github.com/boto/botocore"
|
||||||
url = "https://pypi.io/packages/source/b/botocore/botocore-1.13.44.tar.gz"
|
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.44', sha256='a4409008c32a3305b9c469c5cc92edb5b79d6fcbf6f56fe126886b545f0a4f3f')
|
||||||
version('1.13.38', sha256='15766a367f39dba9de3c6296aaa7da31030f08a0117fd12685e7df682d8acee2')
|
version('1.13.38', sha256='15766a367f39dba9de3c6296aaa7da31030f08a0117fd12685e7df682d8acee2')
|
||||||
version('1.12.169', sha256='25b44c3253b5ed1c9093efb57ffca440c5099a2d62fa793e8b6c52e72f54b01e')
|
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.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.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-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')
|
|
||||||
|
|
|
@ -16,4 +16,3 @@ class PyBottleneck(PythonPackage):
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-numpy', type=('build', 'run'))
|
depends_on('py-numpy', type=('build', 'run'))
|
||||||
depends_on('py-nose', type='test')
|
|
||||||
|
|
|
@ -26,7 +26,6 @@ class PyBrian2(PythonPackage):
|
||||||
depends_on('py-jinja2@2.7:', type=('build', 'run'))
|
depends_on('py-jinja2@2.7:', type=('build', 'run'))
|
||||||
depends_on('py-setuptools@21:', 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-sphinx@1.5:', type=('build', 'run'), when='+docs')
|
||||||
depends_on('py-nose@1.0:', type='test')
|
|
||||||
|
|
||||||
def build_args(self, spec, prefix):
|
def build_args(self, spec, prefix):
|
||||||
return ['--with-cython']
|
return ['--with-cython']
|
||||||
|
|
|
@ -14,14 +14,9 @@ class PyCairocffi(PythonPackage):
|
||||||
|
|
||||||
homepage = "https://github.com/Kozea/cairocffi"
|
homepage = "https://github.com/Kozea/cairocffi"
|
||||||
url = "https://pypi.io/packages/source/c/cairocffi/cairocffi-1.0.2.tar.gz"
|
url = "https://pypi.io/packages/source/c/cairocffi/cairocffi-1.0.2.tar.gz"
|
||||||
import_modules = ['cairocffi']
|
|
||||||
|
|
||||||
version('1.0.2', sha256='01ac51ae12c4324ca5809ce270f9dd1b67f5166fe63bd3e497e9ea3ca91946ff')
|
version('1.0.2', sha256='01ac51ae12c4324ca5809ce270f9dd1b67f5166fe63bd3e497e9ea3ca91946ff')
|
||||||
|
|
||||||
depends_on('python@3.5:', type=('build', 'run'))
|
depends_on('python@3.5:', type=('build', 'run'))
|
||||||
depends_on('py-setuptools@39.2.0:', type='build')
|
depends_on('py-setuptools@39.2.0:', type='build')
|
||||||
depends_on('py-cffi@1.1.0:', type=('build', 'run'))
|
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')
|
|
||||||
|
|
|
@ -13,10 +13,6 @@ class PyCartopy(PythonPackage):
|
||||||
url = "https://github.com/SciTools/cartopy/archive/v0.18.0.tar.gz"
|
url = "https://github.com/SciTools/cartopy/archive/v0.18.0.tar.gz"
|
||||||
|
|
||||||
maintainers = ['adamjstewart']
|
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.18.0', sha256='493ced4698361ffabec1a213d2b711dc836117242c304f3b93f5406182fd8bc2')
|
||||||
version('0.17.0', sha256='137642e63952404ec0841fa0333ad14c58fbbf19cca2a5ac6a38498c4b4998fb')
|
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('pil@1.7.8:', type=('build', 'run'), when='+plotting')
|
||||||
depends_on('py-scipy@0.10:', 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')
|
patch('proj6.patch', when='@0.17.0')
|
||||||
|
|
||||||
phases = ['build_ext', 'install']
|
phases = ['build_ext', 'install']
|
||||||
|
@ -74,8 +65,6 @@ def build_ext_args(self, spec, prefix):
|
||||||
return args
|
return args
|
||||||
|
|
||||||
# Tests need to be re-added since `phases` was overridden
|
# Tests need to be re-added since `phases` was overridden
|
||||||
run_after('build_ext')(
|
|
||||||
PythonPackage._run_default_build_time_test_callbacks)
|
|
||||||
run_after('install')(
|
run_after('install')(
|
||||||
PythonPackage._run_default_install_time_test_callbacks)
|
PythonPackage._run_default_install_time_test_callbacks)
|
||||||
run_after('install')(PythonPackage.sanity_check_prefix)
|
run_after('install')(PythonPackage.sanity_check_prefix)
|
||||||
|
|
|
@ -14,8 +14,6 @@ class PyCertifi(PythonPackage):
|
||||||
homepage = "http://certifi.io/"
|
homepage = "http://certifi.io/"
|
||||||
url = "https://pypi.io/packages/source/c/certifi/certifi-2020.6.20.tar.gz"
|
url = "https://pypi.io/packages/source/c/certifi/certifi-2020.6.20.tar.gz"
|
||||||
|
|
||||||
import_modules = ['certifi']
|
|
||||||
|
|
||||||
version('2020.6.20', sha256='5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3')
|
version('2020.6.20', sha256='5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3')
|
||||||
version('2019.9.11', sha256='e4f3620cfea4f83eedc95b24abd9cd56f3c4b146dd0177e83a21b4eb49e21e50')
|
version('2019.9.11', sha256='e4f3620cfea4f83eedc95b24abd9cd56f3c4b146dd0177e83a21b4eb49e21e50')
|
||||||
version('2019.6.16', sha256='945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695')
|
version('2019.6.16', sha256='945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695')
|
||||||
|
|
|
@ -13,8 +13,6 @@ class PyCffi(PythonPackage):
|
||||||
homepage = "https://cffi.readthedocs.io/en/latest/"
|
homepage = "https://cffi.readthedocs.io/en/latest/"
|
||||||
url = "https://pypi.io/packages/source/c/cffi/cffi-1.13.0.tar.gz"
|
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.14.3', sha256='f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591')
|
||||||
version('1.13.0', sha256='8fe230f612c18af1df6f348d02d682fe2c28ca0a6c3856c99599cdacae7cf226')
|
version('1.13.0', sha256='8fe230f612c18af1df6f348d02d682fe2c28ca0a6c3856c99599cdacae7cf226')
|
||||||
version('1.12.2', sha256='e113878a446c6228669144ae8a56e268c91b7f1fafae927adc4879d9849e0ea7')
|
version('1.12.2', sha256='e113878a446c6228669144ae8a56e268c91b7f1fafae927adc4879d9849e0ea7')
|
||||||
|
@ -27,8 +25,6 @@ class PyCffi(PythonPackage):
|
||||||
depends_on('py-pycparser', type=('build', 'run'))
|
depends_on('py-pycparser', type=('build', 'run'))
|
||||||
depends_on('py-pycparser@2.19:', when='^python@:2.6', type=('build', 'run'))
|
depends_on('py-pycparser@2.19:', when='^python@:2.6', type=('build', 'run'))
|
||||||
depends_on('libffi')
|
depends_on('libffi')
|
||||||
depends_on('py-py', type='test')
|
|
||||||
depends_on('py-pytest', type='test')
|
|
||||||
|
|
||||||
def setup_build_environment(self, env):
|
def setup_build_environment(self, env):
|
||||||
# This sets the compiler (and flags) that distutils will use
|
# This sets the compiler (and flags) that distutils will use
|
||||||
|
|
|
@ -18,5 +18,3 @@ class PyChardet(PythonPackage):
|
||||||
|
|
||||||
depends_on('py-setuptools', type=('build', 'run'))
|
depends_on('py-setuptools', type=('build', 'run'))
|
||||||
depends_on('py-pytest-runner', type='build')
|
depends_on('py-pytest-runner', type='build')
|
||||||
depends_on('py-pytest', type='test')
|
|
||||||
depends_on('py-hypothesis', type='test')
|
|
||||||
|
|
|
@ -12,13 +12,7 @@ class PyCloudpickle(PythonPackage):
|
||||||
homepage = "https://github.com/cloudpipe/cloudpickle"
|
homepage = "https://github.com/cloudpipe/cloudpickle"
|
||||||
url = "https://pypi.io/packages/source/c/cloudpickle/cloudpickle-0.5.2.tar.gz"
|
url = "https://pypi.io/packages/source/c/cloudpickle/cloudpickle-0.5.2.tar.gz"
|
||||||
|
|
||||||
import_modules = ['cloudpickle']
|
|
||||||
|
|
||||||
version('1.2.1', sha256='603244e0f552b72a267d47a7d9b347b27a3430f58a0536037a290e7e0e212ecf')
|
version('1.2.1', sha256='603244e0f552b72a267d47a7d9b347b27a3430f58a0536037a290e7e0e212ecf')
|
||||||
version('0.5.2', sha256='b0e63dd89ed5285171a570186751bc9b84493675e99e12789e9a5dc5490ef554')
|
version('0.5.2', sha256='b0e63dd89ed5285171a570186751bc9b84493675e99e12789e9a5dc5490ef554')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
|
|
||||||
def build_test(self):
|
|
||||||
# PyPI tarball does not come with unit tests
|
|
||||||
pass
|
|
||||||
|
|
|
@ -15,4 +15,3 @@ class PyCmocean(PythonPackage):
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-matplotlib', type=('build', 'run'))
|
depends_on('py-matplotlib', type=('build', 'run'))
|
||||||
depends_on('py-numpy', type=('build', 'run'))
|
depends_on('py-numpy', type=('build', 'run'))
|
||||||
depends_on('py-pytest', type='test')
|
|
||||||
|
|
|
@ -12,13 +12,9 @@ class PyCodecov(PythonPackage):
|
||||||
homepage = "https://github.com/codecov/codecov-python"
|
homepage = "https://github.com/codecov/codecov-python"
|
||||||
url = "https://pypi.io/packages/source/c/codecov/codecov-2.0.15.tar.gz"
|
url = "https://pypi.io/packages/source/c/codecov/codecov-2.0.15.tar.gz"
|
||||||
|
|
||||||
import_modules = ['codecov']
|
|
||||||
|
|
||||||
version('2.0.15', sha256='8ed8b7c6791010d359baed66f84f061bba5bd41174bf324c31311e8737602788')
|
version('2.0.15', sha256='8ed8b7c6791010d359baed66f84f061bba5bd41174bf324c31311e8737602788')
|
||||||
|
|
||||||
depends_on('py-setuptools', type=('build', 'run'))
|
depends_on('py-setuptools', type=('build', 'run'))
|
||||||
depends_on('py-requests@2.7.9:', type=('build', 'run'))
|
depends_on('py-requests@2.7.9:', type=('build', 'run'))
|
||||||
depends_on('py-coverage', type=('build', 'run'))
|
depends_on('py-coverage', type=('build', 'run'))
|
||||||
depends_on('py-argparse', when='^python@:2.6', 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')
|
|
||||||
|
|
|
@ -10,8 +10,6 @@ class PyCounter(PythonPackage):
|
||||||
"""Counter package defines the "counter.Counter" class similar to
|
"""Counter package defines the "counter.Counter" class similar to
|
||||||
bags or multisets in other languages."""
|
bags or multisets in other languages."""
|
||||||
|
|
||||||
import_modules = ['counter']
|
|
||||||
|
|
||||||
homepage = "https://github.com/KelSolaar/Counter"
|
homepage = "https://github.com/KelSolaar/Counter"
|
||||||
url = "https://pypi.io/packages/source/C/Counter/Counter-1.0.0.tar.gz"
|
url = "https://pypi.io/packages/source/C/Counter/Counter-1.0.0.tar.gz"
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ class PyCvxopt(PythonPackage):
|
||||||
homepage = "http://cvxopt.org/"
|
homepage = "http://cvxopt.org/"
|
||||||
url = "https://pypi.io/packages/source/c/cvxopt/cvxopt-1.1.9.tar.gz"
|
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.2.5', sha256='94ec8c36bd6628a11de9014346692daeeef99b3b7bae28cef30c7490bbcb2d72')
|
||||||
version('1.1.9', sha256='8f157e7397158812cabd340b68546f1baa55a486ed0aad8bc26877593dc2983d')
|
version('1.1.9', sha256='8f157e7397158812cabd340b68546f1baa55a486ed0aad8bc26877593dc2983d')
|
||||||
|
|
||||||
|
|
|
@ -16,13 +16,10 @@ class PyCvxpy(PythonPackage):
|
||||||
version('1.0.25', sha256='8535529ddb807067b0d59661dce1d9a6ddb2a218398a38ea7772328ad8a6ea13')
|
version('1.0.25', sha256='8535529ddb807067b0d59661dce1d9a6ddb2a218398a38ea7772328ad8a6ea13')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-nose', type='test')
|
|
||||||
|
|
||||||
depends_on('py-numpy@1.15:', type=('build', 'run'))
|
depends_on('py-numpy@1.15:', type=('build', 'run'))
|
||||||
depends_on('py-scipy@1.1.0:', type=('build', 'run'))
|
depends_on('py-scipy@1.1.0:', type=('build', 'run'))
|
||||||
depends_on('py-ecos@2:', type=('build', 'run'))
|
depends_on('py-ecos@2:', type=('build', 'run'))
|
||||||
depends_on('py-scs@1.1.3:', 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-osqp@0.4.1', type=('build', 'run'))
|
||||||
|
|
||||||
depends_on('py-multiprocess', type=('build', 'run'))
|
depends_on('py-multiprocess', type=('build', 'run'))
|
||||||
depends_on('py-six', type=('build', 'run'))
|
depends_on('py-six', type=('build', 'run'))
|
||||||
|
|
|
@ -12,14 +12,6 @@ class PyCython(PythonPackage):
|
||||||
homepage = "https://pypi.python.org/pypi/cython"
|
homepage = "https://pypi.python.org/pypi/cython"
|
||||||
url = "https://pypi.io/packages/source/c/cython/Cython-0.29.21.tar.gz"
|
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.21', sha256='e57acb89bd55943c8d8bf813763d20b9099cc7165c0f16b707631a7654be9cad')
|
||||||
version('0.29.16', sha256='232755284f942cbb3b43a06cd85974ef3c970a021aef19b5243c03ee2b08fa05')
|
version('0.29.16', sha256='232755284f942cbb3b43a06cd85974ef3c970a021aef19b5243c03ee2b08fa05')
|
||||||
version('0.29.15', sha256='60d859e1efa5cc80436d58aecd3718ff2e74b987db0518376046adedba97ac30')
|
version('0.29.15', sha256='60d859e1efa5cc80436d58aecd3718ff2e74b987db0518376046adedba97ac30')
|
||||||
|
@ -47,6 +39,8 @@ def command(self):
|
||||||
"""Returns the Cython command"""
|
"""Returns the Cython command"""
|
||||||
return Executable(self.prefix.bin.cython)
|
return Executable(self.prefix.bin.cython)
|
||||||
|
|
||||||
|
@run_after('build')
|
||||||
|
@on_package_attributes(run_tests=True)
|
||||||
def build_test(self):
|
def build_test(self):
|
||||||
# Warning: full suite of unit tests takes a very long time
|
# Warning: full suite of unit tests takes a very long time
|
||||||
python('runtests.py', '-j', str(make_jobs))
|
python('runtests.py', '-j', str(make_jobs))
|
||||||
|
|
|
@ -38,9 +38,6 @@ class PyDask(PythonPackage):
|
||||||
depends_on('python@3.6:', type=('build', 'run'), when='@2.7.0:')
|
depends_on('python@3.6:', type=('build', 'run'), when='@2.7.0:')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
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
|
# Requirements for dask.array
|
||||||
depends_on('py-numpy@1.10.4:', type=('build', 'run'), when='+array')
|
depends_on('py-numpy@1.10.4:', type=('build', 'run'), when='+array')
|
||||||
|
|
|
@ -26,8 +26,3 @@ class PyDateparser(PythonPackage):
|
||||||
depends_on('py-ruamel-yaml', type=('build', 'run'), when='+calendars')
|
depends_on('py-ruamel-yaml', type=('build', 'run'), when='+calendars')
|
||||||
depends_on('py-convertdate', 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-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')
|
|
||||||
|
|
|
@ -30,8 +30,6 @@ class PyDeeptools(PythonPackage):
|
||||||
depends_on('py-plotly@2.0.0:', type=('build', 'run'))
|
depends_on('py-plotly@2.0.0:', type=('build', 'run'))
|
||||||
depends_on('py-deeptoolsintervals@0.1.8:', type=('build', 'run'))
|
depends_on('py-deeptoolsintervals@0.1.8:', type=('build', 'run'))
|
||||||
|
|
||||||
depends_on('py-nose', type='test')
|
|
||||||
|
|
||||||
def patch(self):
|
def patch(self):
|
||||||
# Add nosetest hook for "python setup.py test" argument.
|
# Add nosetest hook for "python setup.py test" argument.
|
||||||
filter_file(r'^setup\(',
|
filter_file(r'^setup\(',
|
||||||
|
|
|
@ -13,4 +13,3 @@ class PyDiskcache(PythonPackage):
|
||||||
version('4.1.0', sha256='bcee5a59f9c264e2809e58d01be6569a3bbb1e36a1e0fb83f7ef9b2075f95ce0')
|
version('4.1.0', sha256='bcee5a59f9c264e2809e58d01be6569a3bbb1e36a1e0fb83f7ef9b2075f95ce0')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-tox', type='test')
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ class PyDocopt(PythonPackage):
|
||||||
homepage = "http://docopt.org/"
|
homepage = "http://docopt.org/"
|
||||||
url = "https://pypi.io/packages/source/d/docopt/docopt-0.6.2.tar.gz"
|
url = "https://pypi.io/packages/source/d/docopt/docopt-0.6.2.tar.gz"
|
||||||
|
|
||||||
import_modules = ['docopt']
|
|
||||||
|
|
||||||
version('0.6.2', sha256='49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491')
|
version('0.6.2', sha256='49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
|
|
|
@ -17,17 +17,6 @@ class PyDocutils(PythonPackage):
|
||||||
homepage = "http://docutils.sourceforge.net/"
|
homepage = "http://docutils.sourceforge.net/"
|
||||||
url = "https://pypi.io/packages/source/d/docutils/docutils-0.15.2.tar.gz"
|
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.15.2', sha256='a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99')
|
||||||
version('0.14', sha256='51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274')
|
version('0.14', sha256='51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274')
|
||||||
version('0.13.1', sha256='718c0f5fb677be0f34b781e04241c4067cbd9327b66bdd8e763201130f5175be')
|
version('0.13.1', sha256='718c0f5fb677be0f34b781e04241c4067cbd9327b66bdd8e763201130f5175be')
|
||||||
|
|
|
@ -14,8 +14,6 @@ class PyDxchange(PythonPackage):
|
||||||
homepage = "https://github.com/data-exchange/dxchange"
|
homepage = "https://github.com/data-exchange/dxchange"
|
||||||
url = "https://github.com/data-exchange/dxchange/archive/v0.1.2.tar.gz"
|
url = "https://github.com/data-exchange/dxchange/archive/v0.1.2.tar.gz"
|
||||||
|
|
||||||
import_modules = ['dxchange']
|
|
||||||
|
|
||||||
version('0.1.2', sha256='d005b036b6323d0dffd5944c3da0b8a90496d96277654e72b53717058dd5fd87')
|
version('0.1.2', sha256='d005b036b6323d0dffd5944c3da0b8a90496d96277654e72b53717058dd5fd87')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
|
|
|
@ -13,8 +13,6 @@ class PyDxfile(PythonPackage):
|
||||||
homepage = "https://github.com/data-exchange/dxfile"
|
homepage = "https://github.com/data-exchange/dxfile"
|
||||||
url = "https://github.com/data-exchange/dxfile/archive/v0.4.tar.gz"
|
url = "https://github.com/data-exchange/dxfile/archive/v0.4.tar.gz"
|
||||||
|
|
||||||
import_modules = ['dxfile']
|
|
||||||
|
|
||||||
version('0.4', sha256='b7729eebdc7c99a66a8b339fc10019aa8565e02bd12708540fb3f47935f004c7')
|
version('0.4', sha256='b7729eebdc7c99a66a8b339fc10019aa8565e02bd12708540fb3f47935f004c7')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
|
|
|
@ -22,6 +22,3 @@ class PyEasybuildFramework(PythonPackage):
|
||||||
depends_on('python@2.6:2.8,3.5:', when='@4:', type=('build', 'run'))
|
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-setuptools', when='@:3', type=('build', 'run'))
|
||||||
depends_on('py-vsc-base@2.5.4:', when='@2.9:3', type='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')
|
|
||||||
|
|
|
@ -18,4 +18,3 @@ class PyEcdsa(PythonPackage):
|
||||||
depends_on('python@2.6:2.8,3.3:', type=('build', 'run'))
|
depends_on('python@2.6:2.8,3.3:', type=('build', 'run'))
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-six@1.9.0:', type=('build', 'run'))
|
depends_on('py-six@1.9.0:', type=('build', 'run'))
|
||||||
depends_on('openssl', type='test')
|
|
||||||
|
|
|
@ -16,6 +16,5 @@ class PyEcos(PythonPackage):
|
||||||
version('2.0.7.post1', sha256='83e90f42b3f32e2a93f255c3cfad2da78dbd859119e93844c45d2fca20bdc758')
|
version('2.0.7.post1', sha256='83e90f42b3f32e2a93f255c3cfad2da78dbd859119e93844c45d2fca20bdc758')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-nose', type='test')
|
|
||||||
depends_on('py-numpy@1.6:', type=('build', 'run'))
|
depends_on('py-numpy@1.6:', type=('build', 'run'))
|
||||||
depends_on('py-scipy@0.9:', type=('build', 'run'))
|
depends_on('py-scipy@0.9:', type=('build', 'run'))
|
||||||
|
|
|
@ -12,8 +12,6 @@ class PyEdffile(PythonPackage):
|
||||||
homepage = "https://github.com/vasole/pymca/blob/master/PyMca5/PyMcaIO/EdfFile.py"
|
homepage = "https://github.com/vasole/pymca/blob/master/PyMca5/PyMcaIO/EdfFile.py"
|
||||||
git = "https://github.com/conda-forge/edffile-feedstock.git"
|
git = "https://github.com/conda-forge/edffile-feedstock.git"
|
||||||
|
|
||||||
import_modules = ['EdfFile']
|
|
||||||
|
|
||||||
version('5.0.0', commit='be5ab4199db9f8209c59e31874934b8536b52301')
|
version('5.0.0', commit='be5ab4199db9f8209c59e31874934b8536b52301')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
|
|
|
@ -27,4 +27,3 @@ class PyElephant(PythonPackage):
|
||||||
depends_on('py-pandas@0.14.1:', type=('build', 'run'), when='+pandas')
|
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-numpydoc@0.5:', type=('build', 'run'), when='+docs')
|
||||||
depends_on('py-sphinx@1.2.2:', 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')
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ class PyEntrypoints(PythonPackage):
|
||||||
homepage = "https://pypi.python.org/pypi/entrypoints"
|
homepage = "https://pypi.python.org/pypi/entrypoints"
|
||||||
url = "https://pypi.io/packages/source/e/entrypoints/entrypoints-0.2.3.tar.gz"
|
url = "https://pypi.io/packages/source/e/entrypoints/entrypoints-0.2.3.tar.gz"
|
||||||
|
|
||||||
import_modules = ['entrypoints']
|
|
||||||
|
|
||||||
version('0.3', sha256='c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451')
|
version('0.3', sha256='c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451')
|
||||||
version('0.2.3', sha256='d2d587dde06f99545fb13a383d2cd336a8ff1f359c5839ce3a64c917d10c029f')
|
version('0.2.3', sha256='d2d587dde06f99545fb13a383d2cd336a8ff1f359c5839ce3a64c917d10c029f')
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,6 @@ class PyFenicsDolfinx(PythonPackage):
|
||||||
depends_on("py-cffi", type=("run"))
|
depends_on("py-cffi", type=("run"))
|
||||||
depends_on("py-numpy", type=("run"))
|
depends_on("py-numpy", type=("run"))
|
||||||
|
|
||||||
import_modules = ['dolfinx']
|
|
||||||
phases = ['build_ext', 'build', 'install']
|
phases = ['build_ext', 'build', 'install']
|
||||||
|
|
||||||
build_directory = 'python'
|
build_directory = 'python'
|
||||||
|
|
|
@ -15,5 +15,3 @@ class PyFilemagic(PythonPackage):
|
||||||
version('1.6', sha256='e684359ef40820fe406f0ebc5bf8a78f89717bdb7fed688af68082d991d6dbf3')
|
version('1.6', sha256='e684359ef40820fe406f0ebc5bf8a78f89717bdb7fed688af68082d991d6dbf3')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-mock', type='test', when='^python@3:')
|
|
||||||
depends_on('py-unittest2', type='test')
|
|
||||||
|
|
|
@ -13,7 +13,6 @@ class PyFiona(PythonPackage):
|
||||||
url = "https://pypi.io/packages/source/F/Fiona/Fiona-1.8.6.tar.gz"
|
url = "https://pypi.io/packages/source/F/Fiona/Fiona-1.8.6.tar.gz"
|
||||||
|
|
||||||
maintainers = ['adamjstewart']
|
maintainers = ['adamjstewart']
|
||||||
import_modules = ['fiona', 'fiona.fio']
|
|
||||||
|
|
||||||
version('1.8.6', sha256='fa31dfe8855b9cd0b128b47a4df558f1b8eda90d2181bff1dd9854e5556efb3e')
|
version('1.8.6', sha256='fa31dfe8855b9cd0b128b47a4df558f1b8eda90d2181bff1dd9854e5556efb3e')
|
||||||
version('1.7.12', sha256='8b54eb8422d7c502bb7776b184018186bede1a489cf438a7a47f992ade6a0e51')
|
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-argparse', type=('build', 'run'), when='^python@:2.6')
|
||||||
depends_on('py-ordereddict', 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')
|
depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3')
|
||||||
|
|
||||||
def build_test(self):
|
|
||||||
# PyPI tarball does not come with unit tests
|
|
||||||
pass
|
|
||||||
|
|
|
@ -17,7 +17,6 @@ class PyFiscalyear(PythonPackage):
|
||||||
git = "https://github.com/adamjstewart/fiscalyear.git"
|
git = "https://github.com/adamjstewart/fiscalyear.git"
|
||||||
|
|
||||||
maintainers = ['adamjstewart']
|
maintainers = ['adamjstewart']
|
||||||
import_modules = ['fiscalyear']
|
|
||||||
|
|
||||||
version('master', branch='master')
|
version('master', branch='master')
|
||||||
version('0.2.0', sha256='f513616aeb03046406c56d7c69cd9e26f6a12963c71c1410cc3d4532a5bfee71')
|
version('0.2.0', sha256='f513616aeb03046406c56d7c69cd9e26f6a12963c71c1410cc3d4532a5bfee71')
|
||||||
|
@ -25,7 +24,3 @@ class PyFiscalyear(PythonPackage):
|
||||||
|
|
||||||
depends_on('python@2.5:', type=('build', 'run'))
|
depends_on('python@2.5:', type=('build', 'run'))
|
||||||
depends_on('py-setuptools', type='build')
|
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')
|
|
||||||
|
|
|
@ -18,4 +18,3 @@ class PyFisher(PythonPackage):
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-numpy', type=('build', 'run'))
|
depends_on('py-numpy', type=('build', 'run'))
|
||||||
depends_on('py-pytest', type='test')
|
|
||||||
|
|
|
@ -13,13 +13,9 @@ class PyFreezegun(PythonPackage):
|
||||||
homepage = "https://github.com/spulec/freezegun"
|
homepage = "https://github.com/spulec/freezegun"
|
||||||
url = "https://pypi.io/packages/source/f/freezegun/freezegun-0.3.12.tar.gz"
|
url = "https://pypi.io/packages/source/f/freezegun/freezegun-0.3.12.tar.gz"
|
||||||
|
|
||||||
import_modules = ['freezegun']
|
|
||||||
|
|
||||||
version('0.3.12', sha256='2a4d9c8cd3c04a201e20c313caf8b6338f1cfa4cda43f46a94cc4a9fd13ea5e7')
|
version('0.3.12', sha256='2a4d9c8cd3c04a201e20c313caf8b6338f1cfa4cda43f46a94cc4a9fd13ea5e7')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-six', type=('build', 'run'))
|
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@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-python-dateutil@2:', type=('build', 'run'), when='^python@3:')
|
||||||
depends_on('py-mock', type='test')
|
|
||||||
depends_on('py-nose', type='test')
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ class PyFsspec(PythonPackage):
|
||||||
homepage = "https://github.com/intake/filesystem_spec"
|
homepage = "https://github.com/intake/filesystem_spec"
|
||||||
url = "https://pypi.io/packages/source/f/fsspec/fsspec-0.4.4.tar.gz"
|
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.7.3', sha256='1b540552c93b47e83c568e87507d6e02993e6d1b30bc7285f2336c81c5014103')
|
||||||
version('0.4.4', sha256='97697a46e8bf8be34461c2520d6fc4bfca0ed749b22bb2b7c21939fd450a7d63')
|
version('0.4.4', sha256='97697a46e8bf8be34461c2520d6fc4bfca0ed749b22bb2b7c21939fd450a7d63')
|
||||||
|
|
||||||
|
|
|
@ -12,10 +12,7 @@ class PyFuncsigs(PythonPackage):
|
||||||
homepage = "https://pypi.python.org/pypi/funcsigs"
|
homepage = "https://pypi.python.org/pypi/funcsigs"
|
||||||
url = "https://pypi.io/packages/source/f/funcsigs/funcsigs-1.0.2.tar.gz"
|
url = "https://pypi.io/packages/source/f/funcsigs/funcsigs-1.0.2.tar.gz"
|
||||||
|
|
||||||
import_modules = ['funcsigs']
|
|
||||||
|
|
||||||
version('1.0.2', sha256='a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50')
|
version('1.0.2', sha256='a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50')
|
||||||
version('0.4', sha256='d83ce6df0b0ea6618700fe1db353526391a8a3ada1b7aba52fed7a61da772033')
|
version('0.4', sha256='d83ce6df0b0ea6618700fe1db353526391a8a3ada1b7aba52fed7a61da772033')
|
||||||
|
|
||||||
depends_on('py-setuptools@17.1:', type='build')
|
depends_on('py-setuptools@17.1:', type='build')
|
||||||
depends_on('py-unittest2', type='test')
|
|
||||||
|
|
|
@ -21,3 +21,29 @@ class PyFuture(PythonPackage):
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-importlib', type=('build', 'run'), when='^python@:2.6')
|
depends_on('py-importlib', type=('build', 'run'), when='^python@:2.6')
|
||||||
depends_on('py-argparse', 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
|
||||||
|
|
|
@ -22,6 +22,5 @@ class PyGeeAssetManager(PythonPackage):
|
||||||
depends_on('py-retrying@1.3.3:', type=('build', 'run'))
|
depends_on('py-retrying@1.3.3:', type=('build', 'run'))
|
||||||
depends_on('py-beautifulsoup4@4.5.1:', 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-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-future@0.16.0:', type=('build', 'run'))
|
||||||
depends_on('py-google-cloud-storage@1.1.1:', type=('build', 'run'))
|
depends_on('py-google-cloud-storage@1.1.1:', type=('build', 'run'))
|
||||||
|
|
|
@ -22,7 +22,6 @@ class PyGeeadd(PythonPackage):
|
||||||
depends_on('py-clipboard@0.0.4:', type=('build', 'run'))
|
depends_on('py-clipboard@0.0.4:', type=('build', 'run'))
|
||||||
depends_on('py-beautifulsoup4@4.5.1:', 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-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-future@0.16.0:', type=('build', 'run'))
|
||||||
depends_on('py-google-cloud-storage@1.1.1:', 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'))
|
depends_on('py-oauth2client@4.1.3:', type=('build', 'run'))
|
||||||
|
|
|
@ -20,9 +20,3 @@ class PyGeoalchemy2(PythonPackage):
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-sqlalchemy@0.8:', type=('build', 'run'))
|
depends_on('py-sqlalchemy@0.8:', type=('build', 'run'))
|
||||||
depends_on('py-shapely@1.3.0:', type=('build', 'run'), when='+dev')
|
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')
|
|
||||||
|
|
|
@ -17,9 +17,6 @@ class PyGeopandas(PythonPackage):
|
||||||
url = "https://pypi.io/packages/source/g/geopandas/geopandas-0.5.0.tar.gz"
|
url = "https://pypi.io/packages/source/g/geopandas/geopandas-0.5.0.tar.gz"
|
||||||
|
|
||||||
maintainers = ['adamjstewart']
|
maintainers = ['adamjstewart']
|
||||||
import_modules = [
|
|
||||||
'geopandas', 'geopandas.io', 'geopandas.tools', 'geopandas.datasets'
|
|
||||||
]
|
|
||||||
|
|
||||||
version('0.5.0', sha256='d075d2ab61a502ab92ec6b72aaf9610a1340ec24ed07264fcbdbe944b9e68954')
|
version('0.5.0', sha256='d075d2ab61a502ab92ec6b72aaf9610a1340ec24ed07264fcbdbe944b9e68954')
|
||||||
version('0.4.0', sha256='9f5d24d23f33e6d3267a633025e4d9e050b3a1e86d41a96d3ccc5ad95afec3db')
|
version('0.4.0', sha256='9f5d24d23f33e6d3267a633025e4d9e050b3a1e86d41a96d3ccc5ad95afec3db')
|
||||||
|
|
|
@ -12,6 +12,10 @@ class PyGoogleApiCore(PythonPackage):
|
||||||
homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python"
|
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"
|
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')
|
version('1.14.2', sha256='2c23fbc81c76b941ffb71301bb975ed66a610e9b03f918feacd1ed59cf43a6ec')
|
||||||
|
|
||||||
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
|
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
|
||||||
|
|
|
@ -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-nvidia-ml-py3@7.352.0:', when='^python@3:', type=('build', 'run'))
|
||||||
depends_on('py-psutil', type=('build', 'run'))
|
depends_on('py-psutil', type=('build', 'run'))
|
||||||
depends_on('py-blessings@1.6:', 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')
|
|
||||||
|
|
|
@ -30,10 +30,5 @@ class PyGraphviz(PythonPackage):
|
||||||
depends_on('py-pep8-naming', type=('build', 'run'), when='+dev')
|
depends_on('py-pep8-naming', type=('build', 'run'), when='+dev')
|
||||||
depends_on('py-wheel', 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-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@1.7:', type=('build', 'run'), when='+docs')
|
||||||
depends_on('py-sphinx-rtd-theme', type=('build', 'run'), when='+docs')
|
depends_on('py-sphinx-rtd-theme', type=('build', 'run'), when='+docs')
|
||||||
|
|
|
@ -22,4 +22,3 @@ class PyGrequests(PythonPackage):
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-gevent', type=('build', 'run'))
|
depends_on('py-gevent', type=('build', 'run'))
|
||||||
depends_on('py-requests', type=('build', 'run'))
|
depends_on('py-requests', type=('build', 'run'))
|
||||||
depends_on('py-nose', type='test')
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ class PyH5py(PythonPackage):
|
||||||
url = "https://pypi.io/packages/source/h/h5py/h5py-2.10.0.tar.gz"
|
url = "https://pypi.io/packages/source/h/h5py/h5py-2.10.0.tar.gz"
|
||||||
git = "https://github.com/h5py/h5py.git"
|
git = "https://github.com/h5py/h5py.git"
|
||||||
|
|
||||||
import_modules = ['h5py', 'h5py._hl']
|
|
||||||
|
|
||||||
version('master', branch='master')
|
version('master', branch='master')
|
||||||
version('2.10.0', sha256='84412798925dc870ffd7107f045d7659e60f5d46d1c70c700375248bf6bf512d')
|
version('2.10.0', sha256='84412798925dc870ffd7107f045d7659e60f5d46d1c70c700375248bf6bf512d')
|
||||||
version('2.9.0', sha256='9d41ca62daf36d6b6515ab8765e4c8c4388ee18e2a665701fef2b41563821002')
|
version('2.9.0', sha256='9d41ca62daf36d6b6515ab8765e4c8c4388ee18e2a665701fef2b41563821002')
|
||||||
|
|
|
@ -22,4 +22,3 @@ class PyH5sh(PythonPackage):
|
||||||
depends_on('py-prompt-toolkit@2:', type=('build', 'run'))
|
depends_on('py-prompt-toolkit@2:', type=('build', 'run'))
|
||||||
depends_on('py-pygments', type=('build', 'run'))
|
depends_on('py-pygments', type=('build', 'run'))
|
||||||
depends_on('py-six', type=('build', 'run'))
|
depends_on('py-six', type=('build', 'run'))
|
||||||
depends_on('py-pytest', type='test')
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ class PyHacking(PythonPackage):
|
||||||
homepage = "https://docs.openstack.org/hacking/latest/"
|
homepage = "https://docs.openstack.org/hacking/latest/"
|
||||||
url = "https://pypi.io/packages/source/h/hacking/hacking-1.1.0.tar.gz"
|
url = "https://pypi.io/packages/source/h/hacking/hacking-1.1.0.tar.gz"
|
||||||
|
|
||||||
import_modules = ['hacking']
|
|
||||||
|
|
||||||
version('1.1.0', sha256='23a306f3a1070a4469a603886ba709780f02ae7e0f1fc7061e5c6fb203828fee')
|
version('1.1.0', sha256='23a306f3a1070a4469a603886ba709780f02ae7e0f1fc7061e5c6fb203828fee')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
|
|
|
@ -89,12 +89,6 @@ class PyHorovod(PythonPackage, CudaPackage):
|
||||||
# There does not appear to be a way to use an external Gloo installation
|
# There does not appear to be a way to use an external Gloo installation
|
||||||
depends_on('cmake', type='build', when='tensor_ops=gloo')
|
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',
|
conflicts('cuda_arch=none', when='+cuda',
|
||||||
msg='Must specify CUDA compute capabilities of your GPU, see '
|
msg='Must specify CUDA compute capabilities of your GPU, see '
|
||||||
'https://developer.nvidia.com/cuda-gpus')
|
'https://developer.nvidia.com/cuda-gpus')
|
||||||
|
@ -105,6 +99,51 @@ class PyHorovod(PythonPackage, CudaPackage):
|
||||||
# https://github.com/horovod/horovod/pull/1835
|
# https://github.com/horovod/horovod/pull/1835
|
||||||
patch('fma.patch', when='@0.19.0:0.19.1')
|
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):
|
def setup_build_environment(self, env):
|
||||||
# https://github.com/horovod/horovod/blob/master/docs/install.rst#environment-variables
|
# https://github.com/horovod/horovod/blob/master/docs/install.rst#environment-variables
|
||||||
|
|
||||||
|
@ -167,8 +206,6 @@ def setup_build_environment(self, env):
|
||||||
env.set('HOROVOD_CPU_OPERATIONS',
|
env.set('HOROVOD_CPU_OPERATIONS',
|
||||||
self.spec.variants['tensor_ops'].value.upper())
|
self.spec.variants['tensor_ops'].value.upper())
|
||||||
|
|
||||||
@run_after('install')
|
def test(self):
|
||||||
@on_package_attributes(run_tests=True)
|
super(PyHorovod, self).test()
|
||||||
def install_test(self):
|
run_test(self.prefix.bin.horovodrun, '--check-build')
|
||||||
horovodrun = Executable(self.prefix.bin.horovodrun)
|
|
||||||
horovodrun('--check-build')
|
|
||||||
|
|
|
@ -18,5 +18,3 @@ class PyHtmlgen(PythonPackage):
|
||||||
|
|
||||||
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
|
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-asserts@0.8.0:0.8.999', type='test')
|
|
||||||
depends_on('py-typing', type='test')
|
|
||||||
|
|
|
@ -19,4 +19,3 @@ class PyHumanize(PythonPackage):
|
||||||
version('0.5.1', sha256='a43f57115831ac7c70de098e6ac46ac13be00d69abbf60bdcac251344785bb19')
|
version('0.5.1', sha256='a43f57115831ac7c70de098e6ac46ac13be00d69abbf60bdcac251344785bb19')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-mock', type='test')
|
|
||||||
|
|
|
@ -12,14 +12,6 @@ class PyHypothesis(PythonPackage):
|
||||||
homepage = "https://github.com/HypothesisWorks/hypothesis-python"
|
homepage = "https://github.com/HypothesisWorks/hypothesis-python"
|
||||||
url = "https://pypi.io/packages/source/h/hypothesis/hypothesis-4.41.2.tar.gz"
|
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('5.3.0', sha256='c9fdb53fe3bf1f8e7dcca1a7dd6e430862502f088aca2903d141511212e79429')
|
||||||
version('4.57.1', sha256='3c4369a4b0a1348561048bcda5f1db951a1b8e2a514ea8e8c70d36e656bf6fa0')
|
version('4.57.1', sha256='3c4369a4b0a1348561048bcda5f1db951a1b8e2a514ea8e8c70d36e656bf6fa0')
|
||||||
version('4.41.2', sha256='6847df3ffb4aa52798621dd007e6b61dbcf2d76c30ba37dc2699720e2c734b7a')
|
version('4.41.2', sha256='6847df3ffb4aa52798621dd007e6b61dbcf2d76c30ba37dc2699720e2c734b7a')
|
||||||
|
|
|
@ -13,8 +13,6 @@ class PyImagesize(PythonPackage):
|
||||||
homepage = "https://github.com/shibukawa/imagesize_py"
|
homepage = "https://github.com/shibukawa/imagesize_py"
|
||||||
url = "https://pypi.io/packages/source/i/imagesize/imagesize-0.7.1.tar.gz"
|
url = "https://pypi.io/packages/source/i/imagesize/imagesize-0.7.1.tar.gz"
|
||||||
|
|
||||||
import_modules = ['imagesize']
|
|
||||||
|
|
||||||
version('1.1.0', sha256='f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5')
|
version('1.1.0', sha256='f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5')
|
||||||
version('0.7.1', sha256='0ab2c62b87987e3252f89d30b7cedbec12a01af9274af9ffa48108f2c13c6062')
|
version('0.7.1', sha256='0ab2c62b87987e3252f89d30b7cedbec12a01af9274af9ffa48108f2c13c6062')
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,3 @@ class PyIminuit(PythonPackage):
|
||||||
# Required dependencies
|
# Required dependencies
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-numpy', type=('build', 'run'), when='@1.3:')
|
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:')
|
|
||||||
|
|
|
@ -25,5 +25,3 @@ class PyImportlibMetadata(PythonPackage):
|
||||||
depends_on('py-pathlib2', when='^python@:2', type=('build', 'run'))
|
depends_on('py-pathlib2', when='^python@:2', type=('build', 'run'))
|
||||||
depends_on('py-contextlib2', 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-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')
|
|
||||||
|
|
|
@ -15,5 +15,4 @@ class PyIntervaltree(PythonPackage):
|
||||||
version('3.0.2', sha256='e8ab75b66077f2e5fb85ac56cb6df834689edb048d38601d53d8867cce3b77d1')
|
version('3.0.2', sha256='e8ab75b66077f2e5fb85ac56cb6df834689edb048d38601d53d8867cce3b77d1')
|
||||||
|
|
||||||
depends_on('py-sortedcontainers@2:2.999', type=('build', 'run'))
|
depends_on('py-sortedcontainers@2:2.999', type=('build', 'run'))
|
||||||
depends_on('py-pytest', type='test')
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
|
|
|
@ -36,10 +36,6 @@ class PyIpykernel(PythonPackage):
|
||||||
depends_on('py-tornado@4.0:', when='@:4.999', type=('build', 'run'))
|
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-tornado@4.2:', when='@5.0.0:', type=('build', 'run'))
|
||||||
depends_on('py-appnope', when='platform=darwin', 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']
|
phases = ['build', 'install', 'install_data']
|
||||||
|
|
||||||
|
|
|
@ -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-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-pathlib2', type=('build', 'run'), when="^python@:3.3")
|
||||||
depends_on('py-simplegeneric@0.8:', type=('build', 'run'), when='@:7.0.0')
|
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')
|
|
||||||
|
|
|
@ -30,5 +30,3 @@ class PyIpywidgets(PythonPackage):
|
||||||
when='@7.4.2')
|
when='@7.4.2')
|
||||||
depends_on('py-widgetsnbextension@3.5.0:3.5.999', type=('build', 'run'),
|
depends_on('py-widgetsnbextension@3.5.0:3.5.999', type=('build', 'run'),
|
||||||
when='@7.5.1')
|
when='@7.5.1')
|
||||||
depends_on('py-mock', type='test', when='^python@2.7:2.8')
|
|
||||||
depends_on('py-nose', type='test')
|
|
||||||
|
|
|
@ -16,8 +16,6 @@ class PyIsort(PythonPackage):
|
||||||
version('4.2.15', sha256='79f46172d3a4e2e53e7016e663cc7a8b538bec525c36675fcfd2767df30b3983')
|
version('4.2.15', sha256='79f46172d3a4e2e53e7016e663cc7a8b538bec525c36675fcfd2767df30b3983')
|
||||||
|
|
||||||
depends_on('py-setuptools', type=('build', 'run'))
|
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.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('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')
|
depends_on('py-futures', type=('build', 'run'), when='@4.3.0: ^python@:3.1')
|
||||||
|
|
|
@ -14,8 +14,6 @@ class PyJinja2(PythonPackage):
|
||||||
homepage = "https://palletsprojects.com/p/jinja/"
|
homepage = "https://palletsprojects.com/p/jinja/"
|
||||||
url = "https://pypi.io/packages/source/J/Jinja2/Jinja2-2.10.3.tar.gz"
|
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.3', sha256='9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de')
|
||||||
version('2.10.1', sha256='065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013')
|
version('2.10.1', sha256='065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013')
|
||||||
version('2.10', sha256='f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4')
|
version('2.10', sha256='f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4')
|
||||||
|
|
|
@ -12,9 +12,6 @@ class PyJmespath(PythonPackage):
|
||||||
homepage = "https://github.com/jmespath/jmespath.py"
|
homepage = "https://github.com/jmespath/jmespath.py"
|
||||||
url = "https://pypi.io/packages/source/j/jmespath/jmespath-0.9.4.tar.gz"
|
url = "https://pypi.io/packages/source/j/jmespath/jmespath-0.9.4.tar.gz"
|
||||||
|
|
||||||
import_modules = ['jmespath']
|
|
||||||
|
|
||||||
version('0.9.4', sha256='bde2aef6f44302dfb30320115b17d030798de8c4110e28d5cf6cf91a7a31074c')
|
version('0.9.4', sha256='bde2aef6f44302dfb30320115b17d030798de8c4110e28d5cf6cf91a7a31074c')
|
||||||
|
|
||||||
depends_on('py-setuptools', type='build')
|
depends_on('py-setuptools', type='build')
|
||||||
depends_on('py-nose', type='test')
|
|
||||||
|
|
|
@ -22,5 +22,3 @@ class PyJupyterlabServer(PythonPackage):
|
||||||
depends_on('py-jsonschema@3.0.1:', type=('build', 'run'))
|
depends_on('py-jsonschema@3.0.1:', type=('build', 'run'))
|
||||||
depends_on('py-notebook@4.2.0:', 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-jinja2@2.10:', type=('build', 'run'))
|
||||||
|
|
||||||
depends_on('py-pytest', type='test')
|
|
||||||
|
|
|
@ -20,8 +20,3 @@ class PyJupyterlab(PythonPackage):
|
||||||
depends_on('py-tornado@:5,6.0.3:', type=('build', 'run'))
|
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-jupyterlab-server@1.1.5:1.999', type=('build', 'run'))
|
||||||
depends_on('py-jinja2@2.10:', 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')
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ class PyKmodes(PythonPackage):
|
||||||
homepage = "https://github.com/nicodv/kmodes"
|
homepage = "https://github.com/nicodv/kmodes"
|
||||||
url = "https://pypi.io/packages/source/k/kmodes/kmodes-0.10.1.tar.gz"
|
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')
|
version('0.10.1', sha256='3222c2f672a6356be353955c02d1e38472d9f6074744b4ffb0c058e8c2235ea1')
|
||||||
|
|
||||||
depends_on('python@3.4:', type=('build', 'run'))
|
depends_on('python@3.4:', type=('build', 'run'))
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue