Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / igraph / default.nix
blob98f38528c14426967264a14d68ee9cab3d51fceb
1 { lib
2 , buildPythonPackage
3 , pythonOlder
4 , fetchFromGitHub
5 , pkg-config
6 , setuptools
7 , igraph
8 , texttable
9 , cairocffi
10 , matplotlib
11 , plotly
12 , pytestCheckHook
15 buildPythonPackage rec {
16   pname = "igraph";
17   version = "0.11.4";
19   disabled = pythonOlder "3.8";
21   pyproject = true;
23   src = fetchFromGitHub {
24     owner = "igraph";
25     repo = "python-igraph";
26     rev = "refs/tags/${version}";
27     hash = "sha256-sR9OqsBxP2DvcYz1dhIP29rrQ56CRKW02oNAXUNttio=";
28   };
30   postPatch = ''
31     rm -r vendor
32   '';
34   nativeBuildInputs = [
35     pkg-config
36     setuptools
37   ];
39   buildInputs = [
40     igraph
41   ];
43   propagatedBuildInputs = [
44     texttable
45   ];
47   passthru.optional-dependencies = {
48     cairo = [ cairocffi ];
49     matplotlib = [ matplotlib ];
50     plotly = [ plotly ];
51     plotting = [ cairocffi ];
52   };
54   # NB: We want to use our igraph, not vendored igraph, but even with
55   # pkg-config on the PATH, their custom setup.py still needs to be explicitly
56   # told to do it. ~ C.
57   env.IGRAPH_USE_PKG_CONFIG = true;
59   nativeCheckInputs = [
60     pytestCheckHook
61   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
63   disabledTests = [
64     "testAuthorityScore"
65     "test_labels"
66   ];
68   pythonImportsCheck = [ "igraph" ];
70   meta = with lib; {
71     description = "High performance graph data structures and algorithms";
72     mainProgram = "igraph";
73     homepage = "https://igraph.org/python/";
74     changelog = "https://github.com/igraph/python-igraph/blob/${src.rev}/CHANGELOG.md";
75     license = licenses.gpl2Plus;
76     maintainers = with maintainers; [ MostAwesomeDude dotlambda ];
77   };