1{ lib
2, bokeh
3, buildPythonPackage
4, fetchFromGitHub
5, fsspec
6, pytestCheckHook
7, pythonOlder
8, cloudpickle
9, numpy
10, toolz
11, dill
12, pandas
13, partd
14, pytest_xdist
15}:
16
17buildPythonPackage rec {
18 pname = "dask";
19 version = "2.22.0";
20
21 disabled = pythonOlder "3.5";
22
23 src = fetchFromGitHub {
24 owner = "dask";
25 repo = pname;
26 rev = version;
27 sha256 = "08nvxj81cz9x92dh2gbmm4imkr8cfljfi2hxkballv2ygwcbzg8g";
28 };
29
30 checkInputs = [
31 pytestCheckHook
32 pytest_xdist # takes >10mins to run single-threaded
33 ];
34
35 dontUseSetuptoolsCheck = true;
36
37 propagatedBuildInputs = [
38 bokeh
39 cloudpickle
40 dill
41 fsspec
42 numpy
43 pandas
44 partd
45 toolz
46 ];
47
48 postPatch = ''
49 # versioneer hack to set version of github package
50 echo "def get_versions(): return {'dirty': False, 'error': None, 'full-revisionid': None, 'version': '${version}'}" > dask/_version.py
51
52 substituteInPlace setup.py \
53 --replace "version=versioneer.get_version()," "version='${version}'," \
54 --replace "cmdclass=versioneer.get_cmdclass()," ""
55 '';
56
57 # dask test suite with consistently fail when using high core counts
58 preCheck = ''
59 NIX_BUILD_CORES=$((NIX_BUILD_CORES > 8 ? 8 : NIX_BUILD_CORES))
60 '';
61
62 pytestFlagsArray = [ "-n $NIX_BUILD_CORES" ];
63
64 disabledTests = [
65 "test_argwhere_str"
66 "test_count_nonzero_str"
67 "rolling_methods" # floating percision error ~0.1*10^8 small
68 "num_workers_config" # flaky
69 ];
70
71 meta = {
72 description = "Minimal task scheduling abstraction";
73 homepage = "https://github.com/ContinuumIO/dask/";
74 license = lib.licenses.bsd3;
75 maintainers = with lib.maintainers; [ fridh ];
76 };
77}