1{ lib
2, aiofiles
3, aiohttp
4, async-generator
5, buildPythonPackage
6, fetchFromGitHub
7, fetchpatch
8, pypubsub
9, pyserial
10, pyserial-asyncio
11, pytestCheckHook
12, pythonOlder
13, setuptools
14, voluptuous
15, wheel
16}:
17
18buildPythonPackage rec {
19 pname = "pyinsteon";
20 version = "1.5.0";
21 format = "pyproject";
22
23 disabled = pythonOlder "3.8";
24
25 src = fetchFromGitHub {
26 owner = pname;
27 repo = pname;
28 rev = "refs/tags/${version}";
29 hash = "sha256-REm0E7+otqDypVslB5heHEaWA+q3Nh1O96gxFeCC3As=";
30 };
31
32 patches = [
33 # https://github.com/pyinsteon/pyinsteon/pull/361
34 (fetchpatch {
35 name = "relax-setuptools-dependency.patch";
36 url = "https://github.com/pyinsteon/pyinsteon/commit/676bc5fff11b73a4c3fd189a6ac6d3de9ca21ae0.patch";
37 hash = "sha256-kTu1+IwDrcdqelyK/vfhxw8MQBis5I1jag7YTytKQhs=";
38 })
39 ];
40
41 nativeBuildInputs = [
42 setuptools
43 wheel
44 ];
45
46 propagatedBuildInputs = [
47 aiofiles
48 aiohttp
49 pypubsub
50 pyserial
51 pyserial-asyncio
52 voluptuous
53 ];
54
55 nativeCheckInputs = [
56 async-generator
57 pytestCheckHook
58 ];
59
60 pythonImportsCheck = [
61 "pyinsteon"
62 ];
63
64 meta = with lib; {
65 description = "Python library to support Insteon home automation projects";
66 longDescription = ''
67 This is a Python package to interface with an Insteon Modem. It has been
68 tested to work with most USB or RS-232 serial based devices such as the
69 2413U, 2412S, 2448A7 and Hub models 2242 and 2245.
70 '';
71 homepage = "https://github.com/pyinsteon/pyinsteon";
72 changelog = "https://github.com/pyinsteon/pyinsteon/releases/tag/${version}";
73 license = with licenses; [ mit ];
74 maintainers = with maintainers; [ fab ];
75 };
76}