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

70 lines
1.5 KiB
Nix
Raw Normal View History

{ lib
, buildPythonPackage
, fetchPypi
, fetchpatch
, importlib-metadata
, joblib
, llvmlite
, numba
, scikit-learn
, scipy
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "pynndescent";
version = "0.5.11";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-b0TO2dWp2iyH2bL/8wu1MIVAwGV2BeTVzeftMnW7rVA=";
};
patches = [
# https://github.com/lmcinnes/pynndescent/pull/224
(fetchpatch {
url = "https://github.com/lmcinnes/pynndescent/commit/86e0d716a3a4d5f4e6a0a3c2952f6fe339524e96.patch";
hash = "sha256-dfnT5P9Qsn/nSAr4Ysqo/olbLLfoZXvBRz33yzhN3J4=";
})
];
propagatedBuildInputs = [
joblib
llvmlite
numba
scikit-learn
scipy
] ++ lib.optionals (pythonOlder "3.8") [
importlib-metadata
];
nativeCheckInputs = [
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 ];
};
}