1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 setuptools,
8 setuptools-scm,
9 versioneer,
10
11 # dependencies
12 click,
13 cloudpickle,
14 dask,
15 jinja2,
16 locket,
17 msgpack,
18 packaging,
19 psutil,
20 pyyaml,
21 sortedcontainers,
22 tblib,
23 toolz,
24 tornado,
25 urllib3,
26 zict,
27}:
28
29buildPythonPackage rec {
30 pname = "distributed";
31 version = "2025.3.0";
32 pyproject = true;
33
34 src = fetchFromGitHub {
35 owner = "dask";
36 repo = "distributed";
37 tag = version;
38 hash = "sha256-+vegdEXhQi3ns5iMs6FavKnAlRNIWCUNyZENVBWZsuQ=";
39 };
40
41 postPatch = ''
42 substituteInPlace pyproject.toml \
43 --replace-fail "versioneer[toml]==" "versioneer[toml]>=" \
44 --replace-fail 'dynamic = ["version"]' 'version = "${version}"'
45 '';
46
47 build-system = [
48 setuptools
49 setuptools-scm
50 versioneer
51 ] ++ versioneer.optional-dependencies.toml;
52
53 pythonRelaxDeps = [ "dask" ];
54
55 dependencies = [
56 click
57 cloudpickle
58 dask
59 jinja2
60 locket
61 msgpack
62 packaging
63 psutil
64 pyyaml
65 sortedcontainers
66 tblib
67 toolz
68 tornado
69 urllib3
70 zict
71 ];
72
73 # When tested random tests would fail and not repeatably
74 doCheck = false;
75
76 pythonImportsCheck = [ "distributed" ];
77
78 meta = {
79 description = "Distributed computation in Python";
80 homepage = "https://distributed.readthedocs.io/";
81 changelog = "https://github.com/dask/distributed/releases/tag/${src.tag}";
82 license = lib.licenses.bsd3;
83 maintainers = with lib.maintainers; [ teh ];
84 };
85}