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.8.1";
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 = "manylinux2014_x86_64.manylinux_2_17_x86_64";
30 hash =
31 {
32 cp311 = "sha256-CQ2ChYqTHjdU4QYvXGLCCudk8+XyTnnqkFQ5OAQ4Oo0=";
33 cp312 = "sha256-AF+29PToM7LeHE5RxiCtajCok7RtwWgDnZuzG3FGYHA=";
34 cp313 = "sha256-N7uALh/cmO22CoWVUsfn1JThQc85C/tzUKz9Y0Z9rq4=";
35 }
36 .${pyShortVersion} or (throw "${pname} is missing hash for ${pyShortVersion}");
37 };
38
39 dependencies = [
40 absl-py
41 etils
42 ]
43 ++ etils.optional-dependencies.epath;
44
45 pythonImportsCheck = [ "array_record" ];
46
47 meta = {
48 description = "New file format derived from Riegeli, achieving a new frontier of IO efficiency";
49 homepage = "https://github.com/google/array_record";
50 license = lib.licenses.asl20;
51 maintainers = with lib.maintainers; [ GaetanLepage ];
52 platforms = [ "x86_64-linux" ];
53 };
54}