1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, hatchling
5, hatch-vcs
6, awkward
7, uproot
8, dask
9, dask-awkward
10, dask-histogram
11, correctionlib
12, pyarrow
13, fsspec
14, matplotlib
15, numba
16, numpy
17, scipy
18, tqdm
19, lz4
20, cloudpickle
21, toml
22, mplhep
23, packaging
24, pandas
25, hist
26, cachetools
27, distributed
28, pyinstrument
29, pytestCheckHook
30}:
31
32buildPythonPackage rec {
33 pname = "coffea";
34 version = "2023.10.0.rc1";
35 pyproject = true;
36
37 src = fetchFromGitHub {
38 owner = "CoffeaTeam";
39 repo = "coffea";
40 rev = "refs/tags/v${version}";
41 hash = "sha256-1mfTuZDfkD0NjcmSoXN3BLC5o+dWvw+r65ukZTZf8j4=";
42 };
43
44 postPatch = ''
45 substituteInPlace pyproject.toml \
46 --replace "numba>=0.58.0" "numba" \
47 --replace "numpy>=1.22.0,<1.26" "numpy"
48 '';
49
50 nativeBuildInputs = [
51 hatchling
52 hatch-vcs
53 ];
54
55 propagatedBuildInputs = [
56 awkward
57 uproot
58 dask
59 dask.optional-dependencies.array
60 dask-awkward
61 dask-histogram
62 correctionlib
63 pyarrow
64 fsspec
65 matplotlib
66 numba
67 numpy
68 scipy
69 tqdm
70 lz4
71 cloudpickle
72 toml
73 mplhep
74 packaging
75 pandas
76 hist
77 cachetools
78 ];
79
80 SETUPTOOLS_SCM_PRETEND_VERSION = version;
81
82 nativeCheckInputs = [
83 distributed
84 pyinstrument
85 pytestCheckHook
86 ];
87
88 pythonImportsCheck = [
89 "coffea"
90 ];
91
92 meta = with lib; {
93 description = "Basic tools and wrappers for enabling not-too-alien syntax when running columnar Collider HEP analysis";
94 homepage = "https://github.com/CoffeaTeam/coffea";
95 license = with licenses; [ bsd3 ];
96 maintainers = with maintainers; [ veprbl ];
97 };
98}