1{ 2 lib, 3 buildPythonPackage, 4 pythonOlder, 5 fetchFromGitHub, 6 substituteAll, 7 graphviz, 8 coreutils, 9 pkg-config, 10 setuptools, 11 pytest, 12}: 13 14buildPythonPackage rec { 15 pname = "pygraphviz"; 16 version = "1.13"; 17 pyproject = true; 18 19 disabled = pythonOlder "3.10"; 20 21 src = fetchFromGitHub { 22 owner = "pygraphviz"; 23 repo = "pygraphviz"; 24 rev = "refs/tags/pygraphviz-${version}"; 25 hash = "sha256-/H7eHgs3jtbgat8//1Y1S3iV5s0UBKW+J+zK+f8qGqI="; 26 }; 27 28 patches = [ 29 # pygraphviz depends on graphviz executables and wc being in PATH 30 (substituteAll { 31 src = ./path.patch; 32 path = lib.makeBinPath [ 33 graphviz 34 coreutils 35 ]; 36 }) 37 ]; 38 39 nativeBuildInputs = [ 40 pkg-config 41 setuptools 42 ]; 43 44 buildInputs = [ graphviz ]; 45 46 nativeCheckInputs = [ pytest ]; 47 48 checkPhase = '' 49 runHook preCheck 50 pytest --pyargs pygraphviz 51 runHook postCheck 52 ''; 53 54 pythonImportsCheck = [ "pygraphviz" ]; 55 56 meta = with lib; { 57 description = "Python interface to Graphviz graph drawing package"; 58 homepage = "https://github.com/pygraphviz/pygraphviz"; 59 license = licenses.bsd3; 60 maintainers = with maintainers; [ 61 matthiasbeyer 62 dotlambda 63 ]; 64 }; 65}