1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pythonOlder
5, awkward
6, hatchling
7, importlib-metadata
8, numpy
9, packaging
10, pytestCheckHook
11, lz4
12, pytest-timeout
13, scikit-hep-testdata
14, xxhash
15, zstandard
16}:
17
18buildPythonPackage rec {
19 pname = "uproot";
20 version = "5.0.8";
21 format = "pyproject";
22
23 disabled = pythonOlder "3.7";
24
25 src = fetchFromGitHub {
26 owner = "scikit-hep";
27 repo = "uproot5";
28 rev = "refs/tags/v${version}";
29 hash = "sha256-w5KUiizXzHz0+5WJNaaRYTaKwP8455klp8/1eKB8cQs=";
30 };
31
32 nativeBuildInputs = [
33 hatchling
34 ];
35
36 propagatedBuildInputs = [
37 awkward
38 numpy
39 packaging
40 ] ++ lib.optionals (pythonOlder "3.8") [
41 importlib-metadata
42 ];
43
44 nativeCheckInputs = [
45 pytestCheckHook
46 lz4
47 pytest-timeout
48 scikit-hep-testdata
49 xxhash
50 zstandard
51 ];
52
53 preCheck = ''
54 export HOME="$(mktemp -d)"
55 '';
56
57 disabledTests = [
58 # Tests that try to download files
59 "test_http"
60 "test_no_multipart"
61 "test_fallback"
62 "test_pickle_roundtrip_http"
63 ];
64
65 disabledTestPaths = [
66 # Tests that try to download files
67 "tests/test_0066-fix-http-fallback-freeze.py"
68 "tests/test_0088-read-with-http.py"
69 "tests/test_0220-contiguous-byte-ranges-in-http.py"
70 ];
71
72 pythonImportsCheck = [
73 "uproot"
74 ];
75
76 meta = with lib; {
77 description = "ROOT I/O in pure Python and Numpy";
78 homepage = "https://github.com/scikit-hep/uproot5";
79 changelog = "https://github.com/scikit-hep/uproot5/releases/tag/v${version}";
80 license = licenses.bsd3;
81 maintainers = with maintainers; [ veprbl ];
82 };
83}