1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 requests,
6 websocket-client,
7 zeroconf,
8 pytestCheckHook,
9 setuptools,
10 pythonOlder,
11}:
12
13buildPythonPackage rec {
14 pname = "libsoundtouch";
15 version = "0.8.0";
16 pyproject = true;
17
18 disabled = pythonOlder "3.7";
19
20 src = fetchFromGitHub {
21 owner = "CharlesBlonde";
22 repo = "libsoundtouch";
23 tag = version;
24 hash = "sha256-am8nHPdtKMh8ZA/jKgz2jnltpvgEga8/BjvP5nrhgvI=";
25 };
26
27 postPatch = ''
28 substituteInPlace setup.py \
29 --replace-fail "'enum-compat>=0.0.2'," ""
30 '';
31
32 build-system = [ setuptools ];
33
34 dependencies = [
35 requests
36 websocket-client
37 zeroconf
38 ];
39
40 nativeCheckInputs = [ pytestCheckHook ];
41
42 disabledTests = [
43 # mock data order mismatch
44 "test_select_content_item"
45 "test_snapshot_restore"
46 ];
47
48 pythonImportsCheck = [ "libsoundtouch" ];
49
50 meta = with lib; {
51 description = "Bose Soundtouch Python library";
52 homepage = "https://github.com/CharlesBlonde/libsoundtouch";
53 license = licenses.asl20;
54 maintainers = [ ];
55 };
56}