1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 pythonAtLeast,
6 python,
7 fetchPypi,
8 absl-py,
9 etils,
10}:
11
12buildPythonPackage rec {
13 pname = "array-record";
14 version = "0.7.2";
15 format = "wheel";
16
17 disabled = pythonOlder "3.10" || pythonAtLeast "3.14";
18
19 src =
20 let
21 pyShortVersion = "cp${builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion}";
22 in
23 fetchPypi {
24 inherit version format;
25 pname = "array_record";
26 dist = pyShortVersion;
27 python = pyShortVersion;
28 abi = pyShortVersion;
29 platform = "manylinux_2_17_x86_64.manylinux2014_x86_64";
30 hash =
31 {
32 cp310 = "sha256-UmMEehSqMqgLy1TcYoKUX/tG4Tf8UM2xgnuUrXOiHGo=";
33 cp311 = "sha256-cUN9Ws8A1xIN/n+/oGfv3mGUfmlsojLS69iWRpA2meM=";
34 cp312 = "sha256-S+cV0NhXXlOzSTr2ED1oUuk6U1gQA0ZXoGPaWxGp/ZQ=";
35 cp313 = "sha256-C7UvwXV0/NXA5dhr7NbUCW/KeUWg5w5F18aN2oAUXAQ=";
36 }
37 .${pyShortVersion} or (throw "${pname} is missing hash for ${pyShortVersion}");
38 };
39
40 dependencies = [
41 absl-py
42 etils
43 ]
44 ++ etils.optional-dependencies.epath;
45
46 pythonImportsCheck = [ "array_record" ];
47
48 meta = {
49 description = "New file format derived from Riegeli, achieving a new frontier of IO efficiency";
50 homepage = "https://github.com/google/array_record";
51 license = lib.licenses.asl20;
52 maintainers = with lib.maintainers; [ GaetanLepage ];
53 platforms = [ "x86_64-linux" ];
54 };
55}