1{
2 lib,
3 awesomeversion,
4 buildPythonPackage,
5 click,
6 crcmod,
7 fetchFromGitHub,
8 getmac,
9 intelhex,
10 paho-mqtt,
11 pyserial-asyncio-fast,
12 pyserial,
13 pytest-sugar,
14 pytest-timeout,
15 pytestCheckHook,
16 setuptools,
17 voluptuous,
18}:
19
20buildPythonPackage rec {
21 pname = "pymysensors";
22 version = "0.26.0";
23 pyproject = true;
24
25 src = fetchFromGitHub {
26 owner = "theolind";
27 repo = "pymysensors";
28 tag = version;
29 hash = "sha256-iND3MEKEruqCdsqJJExm+SA4Z2e87I45fsI4wbnIPRc=";
30 };
31
32 build-system = [ setuptools ];
33
34 dependencies = [
35 awesomeversion
36 click
37 crcmod
38 getmac
39 intelhex
40 pyserial
41 pyserial-asyncio-fast
42 voluptuous
43 ];
44
45 optional-dependencies = {
46 mqtt-client = [ paho-mqtt ];
47 };
48
49 nativeCheckInputs = [
50 pytest-sugar
51 pytest-timeout
52 pytestCheckHook
53 ];
54
55 pythonImportsCheck = [ "mysensors" ];
56
57 meta = with lib; {
58 description = "Python API for talking to a MySensors gateway";
59 homepage = "https://github.com/theolind/pymysensors";
60 changelog = "https://github.com/theolind/pymysensors/releases/tag/${src.tag}";
61 license = licenses.mit;
62 maintainers = with maintainers; [ fab ];
63 mainProgram = "pymysensors";
64 };
65}