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