1{
2 lib,
3 aiohttp,
4 buildPythonPackage,
5 colorlog,
6 cryptography,
7 fetchFromGitHub,
8 go,
9 pykerberos,
10 pythonOlder,
11 skein,
12 sqlalchemy,
13 traitlets,
14}:
15
16buildPythonPackage rec {
17 pname = "dask-gateway-server";
18 version = "2023.9.0";
19 format = "setuptools";
20
21 disabled = pythonOlder "3.8";
22
23 src = fetchFromGitHub {
24 owner = "dask";
25 repo = "dask-gateway";
26 rev = version;
27 hash = "sha256-hwNLcuFN6ItH5KhC2gDUsaZT7qTC48fPR/Qx6u8B1+M=";
28 };
29
30 sourceRoot = "${src.name}/${pname}";
31
32 nativeBuildInputs = [ go ];
33
34 propagatedBuildInputs = [
35 aiohttp
36 colorlog
37 cryptography
38 traitlets
39 ];
40
41 optional-dependencies = {
42 kerberos = [ pykerberos ];
43 jobqueue = [ sqlalchemy ];
44 local = [ sqlalchemy ];
45 yarn = [
46 skein
47 sqlalchemy
48 ];
49 };
50
51 preBuild = ''
52 export HOME=$(mktemp -d)
53 '';
54
55 # Tests requires cluster for testing
56 doCheck = false;
57
58 pythonImportsCheck = [ "dask_gateway_server" ];
59
60 meta = with lib; {
61 description = "Multi-tenant server for securely deploying and managing multiple Dask clusters";
62 homepage = "https://gateway.dask.org/";
63 license = licenses.bsd3;
64 maintainers = [ ];
65 };
66}