1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 hatch-fancy-pypi-readme,
8 hatchling,
9
10 # dependencies
11 awkward-cpp,
12 fsspec,
13 numpy,
14 packaging,
15
16 # tests
17 numba,
18 numexpr,
19 pandas,
20 pyarrow,
21 pytest-xdist,
22 pytestCheckHook,
23}:
24
25buildPythonPackage rec {
26 pname = "awkward";
27 version = "2.8.2";
28 pyproject = true;
29
30 src = fetchFromGitHub {
31 owner = "scikit-hep";
32 repo = "awkward";
33 tag = "v${version}";
34 hash = "sha256-OpEzctuCah/ueqw/D7ZadDLJLD3HqSdgAjFcEHhR47A=";
35 };
36
37 build-system = [
38 hatch-fancy-pypi-readme
39 hatchling
40 ];
41
42 dependencies = [
43 awkward-cpp
44 fsspec
45 numpy
46 packaging
47 ];
48
49 dontUseCmakeConfigure = true;
50
51 pythonImportsCheck = [ "awkward" ];
52
53 nativeCheckInputs = [
54 fsspec
55 numba
56 numexpr
57 pandas
58 pyarrow
59 pytest-xdist
60 pytestCheckHook
61 ];
62
63 disabledTests = [
64 # pyarrow.lib.ArrowInvalid
65 "test_recordarray"
66 ];
67
68 disabledTestPaths = [
69 # Need to be run on a GPU platform.
70 "tests-cuda"
71 ];
72
73 meta = {
74 description = "Manipulate JSON-like data with NumPy-like idioms";
75 homepage = "https://github.com/scikit-hep/awkward";
76 changelog = "https://github.com/scikit-hep/awkward/releases/tag/${src.tag}";
77 license = lib.licenses.bsd3;
78 maintainers = with lib.maintainers; [ veprbl ];
79 };
80}