1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 setuptools,
8
9 # dependencies
10 joblib,
11 llvmlite,
12 numba,
13 scikit-learn,
14 scipy,
15
16 # tests
17 pytestCheckHook,
18}:
19
20buildPythonPackage rec {
21 pname = "pynndescent";
22 version = "0.5.13";
23 pyproject = true;
24
25 src = fetchFromGitHub {
26 owner = "lmcinnes";
27 repo = "pynndescent";
28 tag = "release-${version}";
29 hash = "sha256-oE/oy5doHduESHlRPuPHruiw1yUZmuUTe6PrgQlT6O8=";
30 };
31
32 build-system = [ setuptools ];
33
34 dependencies = [
35 joblib
36 llvmlite
37 numba
38 scikit-learn
39 scipy
40 ];
41
42 nativeCheckInputs = [ pytestCheckHook ];
43
44 pythonImportsCheck = [ "pynndescent" ];
45
46 meta = {
47 description = "Nearest Neighbor Descent";
48 homepage = "https://github.com/lmcinnes/pynndescent";
49 changelog = "https://github.com/lmcinnes/pynndescent/releases/tag/release-${version}";
50 license = lib.licenses.bsd2;
51 maintainers = with lib.maintainers; [ mic92 ];
52 badPlatforms = [
53 # The majority of tests are crashing:
54 # Fatal Python error: Segmentation fault
55 "aarch64-linux"
56 ];
57 };
58}