2025-06-09 16:25:57 +03:00

91 lines
1.9 KiB
Nix

{
lib,
buildPythonPackage,
fetchPypi,
fetchpatch,
pythonOlder,
# build-system
setuptools,
# optional-dependencies
lxml,
matplotlib,
numpy,
pandas,
pydot,
pygraphviz,
scipy,
sympy,
# tests
pytest-xdist,
pytestCheckHook,
# reverse dependency
sage,
}:
buildPythonPackage rec {
pname = "networkx";
# upgrade may break sage, please test the sage build or ping @timokau on upgrade
version = "3.4.2";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-MHw2aUKMU2KqsnyKEmCqj0fE6R04kfSL4BQXONjQU+E=";
};
# backport patch to fix tests with Python 3.13.4
# FIXME: remove in next update
patches = [
(fetchpatch {
url = "https://github.com/networkx/networkx/commit/d85b04a8b9619580d8901f35400414f612c83113.patch";
includes = [ "networkx/generators/lattice.py" ];
hash = "sha256-6y/aJBDgNkUzmQ6o52CGVVzqoQgkCEXA4iAXhv1cS0c=";
})
];
nativeBuildInputs = [ setuptools ];
optional-dependencies = {
default = [
numpy
scipy
matplotlib
pandas
];
extra = [
lxml
pygraphviz
pydot
sympy
];
};
passthru.tests = {
inherit sage;
};
nativeCheckInputs = [
pytest-xdist
pytestCheckHook
];
disabledTests = [
# No warnings of type (<class 'DeprecationWarning'>, <class 'PendingDeprecationWarning'>, <class 'FutureWarning'>) were emitted.
"test_connected_raise"
];
meta = {
changelog = "https://github.com/networkx/networkx/blob/networkx-${version}/doc/release/release_${version}.rst";
homepage = "https://networkx.github.io/";
downloadPage = "https://github.com/networkx/networkx";
description = "Library for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks";
license = lib.licenses.bsd3;
};
}