1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 rustPlatform,
6 pytestCheckHook,
7
8 numpy,
9}:
10
11buildPythonPackage rec {
12 pname = "pcodec";
13 version = "0.4.2";
14 pyproject = true;
15
16 src = fetchFromGitHub {
17 owner = "pcodec";
18 repo = "pcodec";
19 tag = "v${version}";
20 hash = "sha256-xWGtTtjMz62LnZDpBtp3HWPW9JgDovObUVSxWM3t1Ng=";
21 };
22
23 cargoDeps = rustPlatform.fetchCargoVendor {
24 inherit src;
25 name = "${pname}-${version}";
26 hash = "sha256-91p0eoVRzc9S8pHRhAlRey4k4jW9IMttiH+9Joh91IQ=";
27 };
28
29 buildAndTestSubdir = "pco_python";
30
31 dependencies = [ numpy ];
32
33 nativeBuildInputs = [
34 rustPlatform.cargoSetupHook
35 rustPlatform.maturinBuildHook
36 ];
37
38 nativeCheckInputs = [
39 pytestCheckHook
40 ];
41
42 pythonImportsCheck = [ "pcodec" ];
43
44 meta = {
45 description = "Lossless codec for numerical data";
46 homepage = "https://github.com/pcodec/pcodec";
47 changelog = "https://github.com/pcodec/pcodec/releases/tag/v${version}";
48 license = lib.licenses.asl20;
49 maintainers = with lib.maintainers; [
50 flokli
51 ];
52 badPlatforms = [
53 # Illegal instruction: 4
54 "x86_64-darwin"
55 ];
56 };
57}