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