nixpkgs/pkgs/development/python-modules/pynndescent/default.nix

74 lines
1.7 KiB
Nix

{ lib
, buildPythonPackage
, fetchPypi
, fetchpatch
, importlib-metadata
, joblib
, llvmlite
, numba
, scikit-learn
, scipy
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "pynndescent";
version = "0.5.8";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-p8VSVpv2BKEB/VS7odJ8EjieBllF3uOmd3pRjGOkbys=";
};
patches = [
# Fix sklearn 1.2.0 compat; https://github.com/lmcinnes/pynndescent/issues/207
(fetchpatch {
url = "https://github.com/lmcinnes/pynndescent/commit/00444be2107b71169b853847e7b334623c58a4e3.patch";
hash = "sha256-mbe01BwroS5q6hENsj3NejmGGhmk2IeX4LD6Iq6PR0c=";
})
(fetchpatch {
url = "https://github.com/lmcinnes/pynndescent/commit/e56b92776a4a05f2dabb80d25479bd37e7ebd88e.patch";
hash = "sha256-zVTaW4syGEHh2HAGPyBN3YXqUGe55v/LxKLX/zjXT5Y=";
})
];
propagatedBuildInputs = [
joblib
llvmlite
numba
scikit-learn
scipy
] ++ lib.optionals (pythonOlder "3.8") [
importlib-metadata
];
checkInputs = [
pytestCheckHook
];
disabledTests = [
# numpy.core._exceptions._UFuncNoLoopError
"test_sparse_nn_descent_query_accuracy_angular"
"test_nn_descent_query_accuracy_angular"
"test_alternative_distances"
# scipy: ValueError: Unknown Distance Metric: wminkowski
# https://github.com/scikit-learn/scikit-learn/pull/21741
"test_weighted_minkowski"
];
pythonImportsCheck = [
"pynndescent"
];
meta = with lib; {
description = "Nearest Neighbor Descent";
homepage = "https://github.com/lmcinnes/pynndescent";
license = licenses.bsd2;
maintainers = with maintainers; [ mic92 ];
};
}