1{ lib 2, buildPythonPackage 3, snap7 4, fetchFromGitHub 5, setuptools 6, pythonOlder 7}: 8 9buildPythonPackage rec { 10 pname = "python-snap7"; 11 version = "1.2"; 12 format = "setuptools"; 13 14 disabled = pythonOlder "3.6"; 15 16 src = fetchFromGitHub { 17 owner = "gijzelaerr"; 18 repo = "python-snap7"; 19 rev = "refs/tags/${version}"; 20 hash = "sha256-xkkJE3wTqS6spwEmQ+HBY1Szao1VFoqmQ041vnAYuqQ="; 21 }; 22 23 propagatedBuildInputs = [ 24 setuptools 25 ]; 26 27 prePatch = '' 28 substituteInPlace snap7/common.py \ 29 --replace "lib_location = None" "lib_location = '${snap7}/lib/libsnap7.so'" 30 ''; 31 32 # Tests require root privileges to open privilaged ports 33 doCheck = false; 34 35 pythonImportsCheck = [ 36 "snap7" 37 "snap7.util" 38 ]; 39 40 meta = with lib; { 41 description = "Python wrapper for the snap7 PLC communication library"; 42 homepage = "https://github.com/gijzelaerr/python-snap7"; 43 license = licenses.mit; 44 maintainers = with maintainers; [ freezeboy ]; 45 }; 46}