1{
2 lib,
3 awesomeversion,
4 buildPythonPackage,
5 click,
6 crcmod,
7 fetchFromGitHub,
8 getmac,
9 intelhex,
10 paho-mqtt,
11 pyserial,
12 pyserial-asyncio,
13 pytest-sugar,
14 pytest-timeout,
15 pytestCheckHook,
16 pythonOlder,
17 voluptuous,
18}:
19
20buildPythonPackage rec {
21 pname = "pymysensors";
22 version = "0.24.1";
23 format = "setuptools";
24
25 disabled = pythonOlder "3.7";
26
27 src = fetchFromGitHub {
28 owner = "theolind";
29 repo = pname;
30 rev = version;
31 hash = "sha256-3t9YrSJf02kc5CuTqPBc/qNJV7yy7Vke4WqhtuOaAYo=";
32 };
33
34 propagatedBuildInputs = [
35 awesomeversion
36 click
37 crcmod
38 getmac
39 intelhex
40 pyserial
41 pyserial-asyncio
42 voluptuous
43 ];
44
45 passthru.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 mainProgram = "pymysensors";
60 homepage = "https://github.com/theolind/pymysensors";
61 license = with licenses; [ mit ];
62 maintainers = with maintainers; [ fab ];
63 };
64}