1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 hatch-vcs,
8 hatchling,
9
10 # dependencies
11 dask-glm,
12 distributed,
13 multipledispatch,
14 numba,
15 numpy,
16 packaging,
17 pandas,
18 scikit-learn,
19 scipy,
20 dask,
21
22 # tests
23 pytest-mock,
24 pytestCheckHook,
25}:
26
27buildPythonPackage rec {
28 pname = "dask-ml";
29 version = "2025.1.0";
30 pyproject = true;
31
32 src = fetchFromGitHub {
33 owner = "dask";
34 repo = "dask-ml";
35 tag = "v${version}";
36 hash = "sha256-DHxx0LFuJmGWYuG/WGHj+a5XHAEekBmlHUUb90rl2IY=";
37 };
38
39 build-system = [
40 hatch-vcs
41 hatchling
42 ];
43
44 dependencies =
45 [
46 dask-glm
47 distributed
48 multipledispatch
49 numba
50 numpy
51 packaging
52 pandas
53 scikit-learn
54 scipy
55 ]
56 ++ dask.optional-dependencies.array
57 ++ dask.optional-dependencies.dataframe;
58
59 pythonImportsCheck = [
60 "dask_ml"
61 "dask_ml.naive_bayes"
62 "dask_ml.wrappers"
63 "dask_ml.utils"
64 ];
65
66 nativeCheckInputs = [
67 pytest-mock
68 pytestCheckHook
69 ];
70
71 disabledTestPaths = [
72 # RuntimeError: Attempting to use an asynchronous Client in a synchronous context of `dask.compute`
73 # https://github.com/dask/dask-ml/issues/1016
74 "tests/model_selection/test_hyperband.py"
75 "tests/model_selection/test_incremental.py"
76 "tests/model_selection/test_incremental_warns.py"
77 "tests/model_selection/test_successive_halving.py"
78 ];
79
80 disabledTests = [
81 # AssertionError: Regex pattern did not match.
82 "test_unknown_category_transform_array"
83
84 # ValueError: cannot broadcast shape (nan,) to shape (nan,)
85 # https://github.com/dask/dask-ml/issues/1012
86 "test_fit_array"
87 "test_fit_frame"
88 "test_fit_transform_frame"
89 "test_laziness"
90 "test_lr_score"
91 "test_ok"
92 "test_scoring_string"
93 ];
94
95 __darwinAllowLocalNetworking = true;
96
97 meta = {
98 description = "Scalable Machine Learn with Dask";
99 homepage = "https://github.com/dask/dask-ml";
100 license = lib.licenses.bsd3;
101 maintainers = with lib.maintainers; [ GaetanLepage ];
102 };
103}