1{ lib
2, aiohttp
3, asynctest
4, buildPythonPackage
5, click
6, fetchFromGitHub
7, mock
8, prompt-toolkit
9, pygments
10, pyserial
11, pyserial-asyncio
12, pytestCheckHook
13, redis
14, sqlalchemy
15, tornado
16, twisted
17}:
18
19buildPythonPackage rec {
20 pname = "pymodbus";
21 version = "2.5.3";
22
23 src = fetchFromGitHub {
24 owner = "riptideio";
25 repo = pname;
26 rev = "v${version}";
27 sha256 = "sha256-pf1TU/imBqNVYdG4XX8fnma8O8kQHuOHu6DT3E/PUk4=";
28 };
29
30 # Twisted asynchronous version is not supported due to a missing dependency
31 propagatedBuildInputs = [
32 aiohttp
33 click
34 prompt-toolkit
35 pygments
36 pyserial
37 pyserial-asyncio
38 tornado
39 ];
40
41 checkInputs = [
42 asynctest
43 mock
44 pytestCheckHook
45 redis
46 sqlalchemy
47 twisted
48 ];
49
50 pythonImportsCheck = [ "pymodbus" ];
51
52 meta = with lib; {
53 description = "Python implementation of the Modbus protocol";
54 longDescription = ''
55 Pymodbus is a full Modbus protocol implementation using twisted,
56 torndo or asyncio for its asynchronous communications core. It can
57 also be used without any third party dependencies if a more
58 lightweight project is needed.
59 '';
60 homepage = "https://github.com/riptideio/pymodbus";
61 license = with licenses; [ bsd3 ];
62 maintainers = with maintainers; [ fab ];
63 };
64}