1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4
5# build-system
6, setuptools
7, scikit-build
8, cython
9, cmake
10, ninja
11
12# propagates
13, msgpack
14, ndindex
15, numpy
16, py-cpuinfo
17, rich
18
19# tests
20, psutil
21, pytestCheckHook
22, torch
23}:
24
25buildPythonPackage rec {
26 pname = "blosc2";
27 version = "2.1.1";
28 format = "pyproject";
29
30 src = fetchFromGitHub {
31 owner = "Blosc";
32 repo = "python-blosc2";
33 rev = "refs/tags/v${version}";
34 fetchSubmodules = true;
35 hash = "sha256-nbPMLkTye0/Q05ubE35LssN677sUIQErPTxjAtSuGgI=";
36 };
37
38 postPatch = ''
39 substituteInPlace requirements-runtime.txt \
40 --replace "pytest" ""
41 '';
42
43 nativeBuildInputs = [
44 cmake
45 cython
46 ninja
47 numpy
48 scikit-build
49 setuptools
50 ];
51
52 dontUseCmakeConfigure = true;
53
54 propagatedBuildInputs = [
55 msgpack
56 ndindex
57 numpy
58 py-cpuinfo
59 rich
60 ];
61
62 nativeCheckInputs = [
63 psutil
64 pytestCheckHook
65 torch
66 ];
67
68 meta = with lib; {
69 description = "Python wrapper for the extremely fast Blosc2 compression library";
70 homepage = "https://github.com/Blosc/python-blosc2";
71 changelog = "https://github.com/Blosc/python-blosc2/releases/tag/v${version}";
72 license = licenses.bsd3;
73 maintainers = with maintainers; [ ];
74 };
75}