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