1{ 2 lib, 3 buildPythonPackage, 4 snap7, 5 fetchFromGitHub, 6 setuptools, 7 pythonOlder, 8}: 9 10buildPythonPackage rec { 11 pname = "python-snap7"; 12 version = "2.0.2"; 13 pyproject = true; 14 15 disabled = pythonOlder "3.6"; 16 17 src = fetchFromGitHub { 18 owner = "gijzelaerr"; 19 repo = "python-snap7"; 20 tag = version; 21 hash = "sha256-mcdzgR0z2P5inK9Q+ZQhP5H8vZSaPbRCSEnt+wzG+ro="; 22 }; 23 24 prePatch = '' 25 substituteInPlace snap7/common.py \ 26 --replace "lib_location = None" "lib_location = '${snap7}/lib/libsnap7.so'" 27 ''; 28 29 build-system = [ setuptools ]; 30 31 # Tests require root privileges to open privileged 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}