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