1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, python
5, xvfb-run
6, wrapGAppsHook
7, gobject-introspection
8, pygobject3
9, graphviz
10, gtk3
11, numpy
12}:
13
14buildPythonPackage rec {
15 pname = "xdot";
16 version = "1.3";
17
18 src = fetchFromGitHub {
19 owner = "jrfonseca";
20 repo = "xdot.py";
21 rev = version;
22 hash = "sha256-0UfvN7z7ThlFu825h03Z5Wur9zbiUpvD5cb5gcIhQQI=";
23 };
24
25 nativeBuildInputs = [
26 gobject-introspection
27 wrapGAppsHook
28 ];
29 propagatedBuildInputs = [
30 pygobject3
31 graphviz
32 gtk3
33 numpy
34 ];
35 nativeCheckInputs = [
36 xvfb-run
37 ];
38
39 dontWrapGApps = true;
40 # Arguments to be passed to `makeWrapper`, only used by buildPython*
41 preFixup = ''
42 makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
43 makeWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ graphviz ]})
44 '';
45
46 checkPhase = ''
47 runHook preCheck
48
49 xvfb-run -s '-screen 0 800x600x24' ${python.interpreter} test.py
50
51 runHook postCheck
52 '';
53
54 doCheck = true;
55
56 meta = with lib; {
57 description = "An interactive viewer for graphs written in Graphviz's dot";
58 homepage = "https://github.com/jrfonseca/xdot.py";
59 license = licenses.lgpl3Plus;
60 };
61}