1{ lib
2, buildPythonPackage
3, isPy3k
4, fetchPypi
5, substituteAll
6, graphviz
7, coreutils
8, pkg-config
9, pytest
10}:
11
12buildPythonPackage rec {
13 pname = "pygraphviz";
14 version = "1.7";
15
16 disabled = !isPy3k;
17
18 src = fetchPypi {
19 inherit pname version;
20 sha256 = "a7bec6609f37cf1e64898c59f075afd659106cf9356c5f387cecaa2e0cdb2304";
21 extension = "zip";
22 };
23
24 patches = [
25 # pygraphviz depends on graphviz executables and wc being in PATH
26 (substituteAll {
27 src = ./path.patch;
28 path = lib.makeBinPath [ graphviz coreutils ];
29 })
30 ];
31
32 nativeBuildInputs = [ pkg-config ];
33
34 buildInputs = [ graphviz ];
35
36 checkInputs = [ pytest ];
37
38 checkPhase = ''
39 pytest --pyargs pygraphviz
40 '';
41
42 meta = with lib; {
43 description = "Python interface to Graphviz graph drawing package";
44 homepage = "https://github.com/pygraphviz/pygraphviz";
45 license = licenses.bsd3;
46 maintainers = with maintainers; [ matthiasbeyer dotlambda ];
47 };
48}