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