1{ lib
2, stdenv
3, buildPythonPackage
4, dask
5, distributed
6, fetchFromGitHub
7, grpcio
8, pytestCheckHook
9, pythonOlder
10, skein
11}:
12
13buildPythonPackage rec {
14 pname = "dask-yarn";
15 version = "0.9";
16 format = "setuptools";
17
18 disabled = pythonOlder "3.7";
19
20 src = fetchFromGitHub {
21 owner = "dask";
22 repo = pname;
23 rev = version;
24 hash = "sha256-/BTsxQSiVQrihrCa9DE7pueyg3aPAdjd/Dt4dpUwdtM=";
25 };
26
27 propagatedBuildInputs = [
28 distributed
29 dask
30 grpcio
31 skein
32 ];
33
34 nativeCheckInputs = [
35 pytestCheckHook
36 ];
37
38 preCheck = ''
39 export HOME=$TMPDIR
40 '';
41
42 pythonImportsCheck = [
43 "dask_yarn"
44 ];
45
46 disabledTests = [
47 # skein.exceptions.DriverError: Failed to start java process
48 "test_basic"
49 "test_adapt"
50 "test_from_specification"
51 "test_from_application_id"
52 "test_from_current"
53 "test_basic_async"
54 "test_widget_and_html_reprs"
55 ];
56
57 meta = with lib; {
58 description = "Deploy dask on YARN clusters";
59 longDescription = ''Dask-Yarn deploys Dask on YARN clusters,
60 such as are found in traditional Hadoop installations.
61 Dask-Yarn provides an easy interface to quickly start,
62 stop, and scale Dask clusters natively from Python.
63 '';
64 homepage = "https://yarn.dask.org/";
65 license = licenses.bsd3;
66 maintainers = with maintainers; [ illustris ];
67 broken = stdenv.isDarwin;
68 };
69}