1{ lib
2, buildPythonPackage
3, fetchPypi
4, graphviz
5, graphvizPkgs
6, isPyPy
7, python
8, pythonOlder
9, substituteAll
10}:
11
12buildPythonPackage rec {
13 pname = "objgraph";
14 version = "3.6.0";
15 format = "setuptools";
16
17 disabled = pythonOlder "3.7" || isPyPy;
18
19 src = fetchPypi {
20 inherit pname version;
21 hash = "sha256-NpVnw3tPL5KBYLb27e3L6o/H6SmDGHf9EFbHipAMF9M=";
22 };
23
24 patches = [
25 (substituteAll {
26 src = ./hardcode-graphviz-path.patch;
27 graphviz = graphvizPkgs;
28 })
29 ];
30
31 passthru.optional-dependencies = {
32 ipython = [
33 graphviz
34 ];
35 };
36
37 pythonImportsCheck = [
38 "objgraph"
39 ];
40
41 checkPhase = ''
42 runHook preCheck
43 ${python.interpreter} tests.py
44 runHook postCheck
45 '';
46
47 meta = with lib; {
48 description = "Draws Python object reference graphs with graphviz";
49 homepage = "https://mg.pov.lt/objgraph/";
50 changelog = "https://github.com/mgedmin/objgraph/blob/${version}/CHANGES.rst";
51 license = licenses.mit;
52 maintainers = with maintainers; [ dotlambda ];
53 };
54}