ff1a94e523
The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible.
79 lines
1.6 KiB
Nix
79 lines
1.6 KiB
Nix
{ lib
|
|
, buildPythonPackage
|
|
, pythonOlder
|
|
, fetchFromGitHub
|
|
, pkg-config
|
|
, setuptools
|
|
, igraph
|
|
, texttable
|
|
, cairocffi
|
|
, matplotlib
|
|
, plotly
|
|
, pytestCheckHook
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "igraph";
|
|
version = "0.11.4";
|
|
|
|
disabled = pythonOlder "3.8";
|
|
|
|
pyproject = true;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "igraph";
|
|
repo = "python-igraph";
|
|
rev = "refs/tags/${version}";
|
|
hash = "sha256-sR9OqsBxP2DvcYz1dhIP29rrQ56CRKW02oNAXUNttio=";
|
|
};
|
|
|
|
postPatch = ''
|
|
rm -r vendor
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
pkg-config
|
|
setuptools
|
|
];
|
|
|
|
buildInputs = [
|
|
igraph
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
texttable
|
|
];
|
|
|
|
passthru.optional-dependencies = {
|
|
cairo = [ cairocffi ];
|
|
matplotlib = [ matplotlib ];
|
|
plotly = [ plotly ];
|
|
plotting = [ cairocffi ];
|
|
};
|
|
|
|
# NB: We want to use our igraph, not vendored igraph, but even with
|
|
# pkg-config on the PATH, their custom setup.py still needs to be explicitly
|
|
# told to do it. ~ C.
|
|
env.IGRAPH_USE_PKG_CONFIG = true;
|
|
|
|
nativeCheckInputs = [
|
|
pytestCheckHook
|
|
] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
|
|
|
|
disabledTests = [
|
|
"testAuthorityScore"
|
|
"test_labels"
|
|
];
|
|
|
|
pythonImportsCheck = [ "igraph" ];
|
|
|
|
meta = with lib; {
|
|
description = "High performance graph data structures and algorithms";
|
|
mainProgram = "igraph";
|
|
homepage = "https://igraph.org/python/";
|
|
changelog = "https://github.com/igraph/python-igraph/blob/${src.rev}/CHANGELOG.md";
|
|
license = licenses.gpl2Plus;
|
|
maintainers = with maintainers; [ MostAwesomeDude dotlambda ];
|
|
};
|
|
}
|