1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitHub,
6
7 # build-system
8 setuptools,
9
10 # dependencies
11 dask,
12 distributed,
13
14 # checks
15 cryptography,
16 pytest-asyncio,
17 pytestCheckHook,
18}:
19
20buildPythonPackage rec {
21 pname = "dask-jobqueue";
22 version = "0.9.0";
23 pyproject = true;
24
25 src = fetchFromGitHub {
26 owner = "dask";
27 repo = "dask-jobqueue";
28 tag = version;
29 hash = "sha256-YujfhjOJzl4xsjjsyrQkEu/CBR04RwJ79c1iSTcMIgw=";
30 };
31
32 build-system = [ setuptools ];
33
34 dependencies = [
35 dask
36 distributed
37 ];
38
39 nativeCheckInputs = [
40 cryptography
41 pytest-asyncio
42 pytestCheckHook
43 ];
44
45 disabledTests = [
46 # Require some unavailable pytest fixtures
47 "test_adapt"
48 "test_adaptive"
49 "test_adaptive_cores_mem"
50 "test_adaptive_grouped"
51 "test_adapt_parameters"
52 "test_basic"
53 "test_basic_scale_edge_cases"
54 "test_cluster"
55 "test_cluster_error_scheduler_arguments_should_use_scheduler_options"
56 "test_cluster_has_cores_and_memory"
57 "test_command_template"
58 "test_complex_cancel_command"
59 "test_config"
60 "test_dashboard_link"
61 "test_default_number_of_worker_processes"
62 "test_deprecation_env_extra"
63 "test_deprecation_extra"
64 "test_deprecation_job_extra"
65 "test_different_interfaces_on_scheduler_and_workers"
66 "test_docstring_cluster"
67 "test_extra_args_broken_cancel"
68 "test_forward_ip"
69 "test_import_scheduler_options_from_config"
70 "test_job"
71 "test_jobqueue_job_call"
72 "test_log_directory"
73 "test_scale_cores_memory"
74 "test_scale_grouped"
75 "test_scheduler_options"
76 "test_scheduler_options_interface"
77 "test_security"
78 "test_security_temporary"
79 "test_security_temporary_defaults"
80 "test_shebang_settings"
81 "test_use_stdin"
82 "test_worker_name_uses_cluster_name"
83 "test_wrong_parameter_error"
84 ]
85 ++ lib.optionals stdenv.hostPlatform.isDarwin [
86 # ValueError: invalid operation on non-started TCPListener
87 "test_header"
88 "test_lsf_unit_detection"
89 "test_lsf_unit_detection_without_file"
90 "test_runner"
91 ];
92
93 pythonImportsCheck = [ "dask_jobqueue" ];
94
95 __darwinAllowLocalNetworking = true;
96
97 meta = {
98 description = "Deploy Dask on job schedulers like PBS, SLURM, and SGE";
99 homepage = "https://github.com/dask/dask-jobqueue";
100 license = lib.licenses.bsd3;
101 maintainers = with lib.maintainers; [ GaetanLepage ];
102 };
103}