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.11";
15
16 disabled = !isPy3k;
17
18 src = fetchPypi {
19 inherit pname version;
20 hash = "sha256-qX61ztJm9FBT67HyxsbSkJFpBQPjpcFL5/kIs3sG8tQ=";
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 nativeCheckInputs = [ pytest ];
37
38 checkPhase = ''
39 runHook preCheck
40 pytest --pyargs pygraphviz
41 runHook postCheck
42 '';
43
44 pythonImportsCheck = [ "pygraphviz" ];
45
46 meta = with lib; {
47 description = "Python interface to Graphviz graph drawing package";
48 homepage = "https://github.com/pygraphviz/pygraphviz";
49 license = licenses.bsd3;
50 maintainers = with maintainers; [ matthiasbeyer dotlambda ];
51 };
52}