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