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