summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/py-dask-ml/package.py
blob: ac56cfd8af392d6ddcfaacb6799c55d5e7e7a004 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Copyright 2013-2022 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)

from spack.package import *


class PyDaskMl(PythonPackage):
    """Scalable Machine Learning with Dask."""

    homepage = "https://ml.dask.org/"
    pypi     = "dask-ml/dask-ml-1.8.0.tar.gz"

    version('1.8.0', sha256='8fc4ac3ec1915e382fb8cae9ff1ec9b5ac1bee0b6f4c6975d6e6cb7191a4a815')

    variant('docs', default=False, description='Build HTML documentation')
    variant('xgboost', default=False, description='Deploys XGBoost alongside Dask')

    depends_on('python@3.6:', type=('build', 'run'))

    depends_on('py-setuptools', type='build')
    depends_on('py-setuptools-scm', type='build')

    depends_on('py-dask+array+dataframe@2.4.0:', type=('build', 'run'))
    depends_on('py-distributed@2.4.0:', type=('build', 'run'))
    depends_on('py-numba', type=('build', 'run'))
    depends_on('py-numpy@1.17.3:', type=('build', 'run'))
    depends_on('py-pandas@0.24.2:', type=('build', 'run'))
    depends_on('py-scikit-learn@0.23:', type=('build', 'run'))
    depends_on('py-scipy', type=('build', 'run'))
    depends_on('py-dask-glm@0.2.0:', type=('build', 'run'))
    depends_on('py-multipledispatch@0.4.9:', type=('build', 'run'))
    depends_on('py-packaging', type=('build', 'run'))

    depends_on('py-graphviz', type=('build', 'run'), when='+docs')
    depends_on('py-heapdict', type=('build', 'run'), when='+docs')
    depends_on('py-ipykernel', type=('build', 'run'), when='+docs')
    depends_on('py-ipython', type=('build', 'run'), when='+docs')
    depends_on('py-nbsphinx', type=('build', 'run'), when='+docs')
    depends_on('py-nose', type=('build', 'run'), when='+docs')
    depends_on('py-numpydoc', type=('build', 'run'), when='+docs')
    depends_on('py-sortedcontainers', type=('build', 'run'), when='+docs')
    depends_on('py-sphinx', type=('build', 'run'), when='+docs')
    depends_on('py-sphinx-rtd-theme', type=('build', 'run'), when='+docs')
    depends_on('py-sphinx-gallery', type=('build', 'run'), when='+docs')
    depends_on('py-testpath', type=('build', 'run'), when='+docs')
    depends_on('py-tornado', type=('build', 'run'), when='+docs')
    depends_on('py-zict', type=('build', 'run'), when='+docs')
    depends_on('py-dask-sphinx-theme@1.1.0:', type=('build', 'run'), when='+docs')
    depends_on('py-nbsphinx', type=('build', 'run'), when='+docs')

    depends_on('py-xgboost+dask', type=('build', 'run'), when='+docs')
    depends_on('py-xgboost+dask', type=('build', 'run'), when='+xgboost')

    patch('xgboost_dependency.patch')

    conflicts('+docs', when='%gcc target=aarch64:')

    @run_after('install')
    def install_docs(self):
        if '+docs' in self.spec:
            with working_dir('docs'):
                make('html')
            install_tree('docs', self.prefix.docs)