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