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