1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchPypi,
6 pythonAtLeast,
7 stdenv,
8
9 # build-system
10 setuptools,
11
12 # propagates (optional, but unspecified)
13 # https://github.com/joblib/joblib#dependencies
14 lz4,
15 psutil,
16
17 # tests
18 pytestCheckHook,
19 threadpoolctl,
20}:
21
22buildPythonPackage rec {
23 pname = "joblib";
24 version = "1.5.1";
25 format = "pyproject";
26
27 disabled = pythonOlder "3.7";
28
29 src = fetchPypi {
30 inherit pname version;
31 hash = "sha256-9PhuNR85/j0NMqnyw9ivHuTOwoWq/LJwA92lIFV2tEQ=";
32 };
33
34 nativeBuildInputs = [ setuptools ];
35
36 propagatedBuildInputs = [
37 lz4
38 psutil
39 ];
40
41 nativeCheckInputs = [
42 pytestCheckHook
43 threadpoolctl
44 ];
45
46 enabledTestPaths = [ "joblib/test" ];
47
48 disabledTests = [
49 "test_disk_used" # test_disk_used is broken: https://github.com/joblib/joblib/issues/57
50 "test_parallel_call_cached_function_defined_in_jupyter" # jupyter not available during tests
51 "test_nested_parallel_warnings" # tests is flaky under load
52 "test_memory" # tests - and the module itself - assume strictatime mount for build directory
53 ]
54 ++ lib.optionals stdenv.hostPlatform.isDarwin [
55 "test_dispatch_multiprocessing" # test_dispatch_multiprocessing is broken only on Darwin.
56 ]
57 ++ lib.optionals (pythonAtLeast "3.12") [
58 # deprecation warnings with python3.12 https://github.com/joblib/joblib/issues/1478
59 "test_main_thread_renamed_no_warning"
60 "test_background_thread_parallelism"
61 ];
62
63 meta = with lib; {
64 changelog = "https://github.com/joblib/joblib/releases/tag/${version}";
65 description = "Lightweight pipelining: using Python functions as pipeline jobs";
66 homepage = "https://joblib.readthedocs.io/";
67 license = licenses.bsd3;
68 maintainers = [ ];
69 };
70}