1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6
7 # build-system
8 poetry-core,
9
10 # dependencies
11 mashumaro,
12 orjson,
13 pyserial-asyncio-fast,
14
15 # tests
16 pytestCheckHook,
17}:
18
19buildPythonPackage rec {
20 pname = "aiorussound";
21 version = "4.8.2";
22 pyproject = true;
23
24 # requires newer f-strings introduced in 3.12
25 disabled = pythonOlder "3.12";
26
27 src = fetchFromGitHub {
28 owner = "noahhusby";
29 repo = "aiorussound";
30 tag = version;
31 hash = "sha256-5g1LdltGw96EZWWj0Fei8i6l5yslQgicI/oI9jr1w0U=";
32 };
33
34 build-system = [ poetry-core ];
35
36 dependencies = [
37 mashumaro
38 orjson
39 pyserial-asyncio-fast
40 ];
41
42 nativeCheckInputs = [
43 pytestCheckHook
44 ];
45
46 pythonImportsCheck = [ "aiorussound" ];
47
48 meta = with lib; {
49 changelog = "https://github.com/noahhusby/aiorussound/releases/tag/${src.tag}";
50 description = "Async python package for interfacing with Russound RIO hardware";
51 homepage = "https://github.com/noahhusby/aiorussound";
52 license = licenses.mit;
53 maintainers = with maintainers; [ hexa ];
54 };
55}