1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 hatch-vcs,
8 hatchling,
9
10 # dependencies
11 awkward,
12 cachetools,
13 dask,
14 typing-extensions,
15
16 # optional-dependencies
17 pyarrow,
18
19 # tests
20 distributed,
21 hist,
22 pandas,
23 pytestCheckHook,
24 uproot,
25}:
26
27buildPythonPackage rec {
28 pname = "dask-awkward";
29 version = "2025.5.0";
30 pyproject = true;
31
32 src = fetchFromGitHub {
33 owner = "dask-contrib";
34 repo = "dask-awkward";
35 tag = version;
36 hash = "sha256-TLMT7YxedBUfz05F8wTsS5LQ9LyBbcUhQENM8C7Xric=";
37 };
38
39 build-system = [
40 hatch-vcs
41 hatchling
42 ];
43
44 dependencies = [
45 awkward
46 cachetools
47 dask
48 typing-extensions
49 ];
50
51 optional-dependencies = {
52 io = [ pyarrow ];
53 };
54
55 nativeCheckInputs = [
56 # dask-histogram (circular dependency)
57 distributed
58 hist
59 pandas
60 pytestCheckHook
61 uproot
62 ]
63 ++ lib.flatten (builtins.attrValues optional-dependencies);
64
65 pythonImportsCheck = [ "dask_awkward" ];
66
67 disabledTests = [
68 # Tests require network access
69 "test_remote_double"
70 "test_remote_single"
71 "test_from_text"
72 # ValueError: not a ROOT file: first four bytes...
73 "test_basic_root_works"
74 # Flaky. https://github.com/dask-contrib/dask-awkward/issues/506.
75 "test_distance_behavior"
76
77 # RuntimeError: Attempting to use an asynchronous Client in a synchronous context of `dask.compute`
78 # https://github.com/dask-contrib/dask-awkward/issues/573
79 "test_persist"
80 "test_ravel_fail"
81 ];
82
83 __darwinAllowLocalNetworking = true;
84
85 meta = {
86 description = "Native Dask collection for awkward arrays, and the library to use it";
87 homepage = "https://github.com/dask-contrib/dask-awkward";
88 changelog = "https://github.com/dask-contrib/dask-awkward/releases/tag/${src.tag}";
89 license = lib.licenses.bsd3;
90 maintainers = with lib.maintainers; [ veprbl ];
91 };
92}