1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pkgconfig
5, psutil
6, pytestCheckHook
7, python
8, pythonOlder
9, setuptools-scm
10}:
11
12buildPythonPackage rec {
13 pname = "python-lz4";
14 version = "4.3.2";
15 format = "setuptools";
16
17 disabled = pythonOlder "3.5";
18
19 # get full repository in order to run tests
20 src = fetchFromGitHub {
21 owner = pname;
22 repo = pname;
23 rev = "refs/tags/v${version}";
24 hash = "sha256-aVnXCrTh+0Ip+FgYWN7hLw8N3iQCmXSywhReD5RTUfI=";
25 };
26
27 SETUPTOOLS_SCM_PRETEND_VERSION = version;
28
29 postPatch = ''
30 sed -i '/pytest-cov/d' setup.py
31 '';
32
33 nativeBuildInputs = [
34 pkgconfig
35 setuptools-scm
36 ];
37
38 pythonImportsCheck = [
39 "lz4"
40 "lz4.block"
41 "lz4.frame"
42 "lz4.stream"
43 ];
44
45 nativeCheckInputs = [
46 psutil
47 pytestCheckHook
48 ];
49
50 # for lz4.steam
51 PYLZ4_EXPERIMENTAL = true;
52
53 # prevent local lz4 directory from getting imported as it lacks native extensions
54 preCheck = ''
55 rm -r lz4
56 export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
57 '';
58
59 meta = with lib; {
60 description = "LZ4 Bindings for Python";
61 homepage = "https://github.com/python-lz4/python-lz4";
62 changelog = "https://github.com/python-lz4/python-lz4/releases/tag/v${version}";
63 license = licenses.bsd3;
64 maintainers = with maintainers; [ costrouc ];
65 };
66}