1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 hatchling,
8 hatch-vcs,
9
10 # dependencies
11 aiohttp,
12 awkward,
13 cachetools,
14 cloudpickle,
15 correctionlib,
16 dask,
17 dask-awkward,
18 dask-histogram,
19 fsspec-xrootd,
20 hist,
21 lz4,
22 matplotlib,
23 mplhep,
24 numba,
25 numpy,
26 packaging,
27 pandas,
28 pyarrow,
29 requests,
30 scipy,
31 toml,
32 tqdm,
33 uproot,
34 vector,
35
36 # checks
37 distributed,
38 pyinstrument,
39 pytestCheckHook,
40 pytest-xdist,
41}:
42
43buildPythonPackage rec {
44 pname = "coffea";
45 version = "2024.11.0";
46 pyproject = true;
47
48 src = fetchFromGitHub {
49 owner = "CoffeaTeam";
50 repo = "coffea";
51 rev = "refs/tags/v${version}";
52 hash = "sha256-QE+la7CB2xrbbIOUL/HtKRHUOGu19IyfDvjL6oucn7g=";
53 };
54
55 build-system = [
56 hatchling
57 hatch-vcs
58 ];
59
60 dependencies = [
61 aiohttp
62 awkward
63 cachetools
64 cloudpickle
65 correctionlib
66 dask
67 dask-awkward
68 dask-histogram
69 fsspec-xrootd
70 hist
71 lz4
72 matplotlib
73 mplhep
74 numba
75 numpy
76 packaging
77 pandas
78 pyarrow
79 requests
80 scipy
81 toml
82 tqdm
83 uproot
84 vector
85 ] ++ dask.optional-dependencies.array;
86
87 nativeCheckInputs = [
88 distributed
89 pyinstrument
90 pytestCheckHook
91 pytest-xdist
92 ];
93
94 pythonImportsCheck = [ "coffea" ];
95
96 disabledTests = [
97 # Requires internet access
98 # https://github.com/CoffeaTeam/coffea/issues/1094
99 "test_lumimask"
100 ];
101
102 __darwinAllowLocalNetworking = true;
103
104 meta = {
105 description = "Basic tools and wrappers for enabling not-too-alien syntax when running columnar Collider HEP analysis";
106 homepage = "https://github.com/CoffeaTeam/coffea";
107 changelog = "https://github.com/CoffeaTeam/coffea/releases/tag/v${version}";
108 license = with lib.licenses; [ bsd3 ];
109 maintainers = with lib.maintainers; [ veprbl ];
110 };
111}