1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 pytestCheckHook,
7 pythonOlder,
8}:
9
10buildPythonPackage rec {
11 pname = "pycomm3";
12 version = "1.2.14";
13 pyproject = true;
14
15 disabled = pythonOlder "3.7";
16
17 src = fetchFromGitHub {
18 owner = "ottowayi";
19 repo = "pycomm3";
20 tag = "v${version}";
21 hash = "sha256-KdvmISMH2HHU8N665QevVw7q9Qs5CwjXxcWpLoziY/Y=";
22 };
23
24 build-system = [ setuptools ];
25
26 nativeCheckInputs = [ pytestCheckHook ];
27
28 pythonImportsCheck = [ "pycomm3" ];
29
30 disabledTestPaths = [
31 # Don't test examples as some have additional requirements
32 "examples/"
33 # No physical PLC available
34 "tests/online/"
35 ];
36
37 meta = with lib; {
38 description = "Python Ethernet/IP library for communicating with Allen-Bradley PLCs";
39 homepage = "https://github.com/ottowayi/pycomm3";
40 changelog = "https://github.com/ottowayi/pycomm3/releases/tag/v${version}";
41 license = licenses.mit;
42 maintainers = with maintainers; [ fab ];
43 };
44}