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.5";
28 pyproject = true;
29
30 src = fetchFromGitHub {
31 owner = "scikit-hep";
32 repo = "awkward";
33 tag = "v${version}";
34 hash = "sha256-vcVJ9dLiZ3wfZU989slefSJoD2hKlRCwxRALvRGLZPA=";
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 disabledTestPaths = [
64 # Need to be run on a GPU platform.
65 "tests-cuda"
66 ];
67
68 meta = {
69 description = "Manipulate JSON-like data with NumPy-like idioms";
70 homepage = "https://github.com/scikit-hep/awkward";
71 changelog = "https://github.com/scikit-hep/awkward/releases/tag/${src.tag}";
72 license = lib.licenses.bsd3;
73 maintainers = with lib.maintainers; [ veprbl ];
74 };
75}