1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, fetchpatch
5, keras
6, numba
7, numpy
8, pynndescent
9, pytestCheckHook
10, pythonOlder
11, scikit-learn
12, scipy
13, tensorflow
14, tqdm
15}:
16
17buildPythonPackage rec {
18 pname = "umap-learn";
19 version = "0.5.5";
20 format = "setuptools";
21
22 disabled = pythonOlder "3.7";
23
24 src = fetchFromGitHub {
25 owner = "lmcinnes";
26 repo = "umap";
27 rev = "refs/tags/release-${version}";
28 hash = "sha256-bXAQjq7xBYn34tIZF96Sr5jDUii3s4FGkNx65rGKXkY=";
29 };
30
31 propagatedBuildInputs = [
32 numba
33 numpy
34 pynndescent
35 scikit-learn
36 scipy
37 tqdm
38 ];
39
40 nativeCheckInputs = [
41 keras
42 pytestCheckHook
43 tensorflow
44 ];
45
46 preCheck = ''
47 export HOME=$TMPDIR
48 '';
49
50 disabledTests = [
51 # Plot functionality requires additional packages.
52 # These test also fail with 'RuntimeError: cannot cache function' error.
53 "test_umap_plot_testability"
54 "test_plot_runs_at_all"
55
56 # Flaky test. Fails with AssertionError sometimes.
57 "test_sparse_hellinger"
58 "test_densmap_trustworthiness_on_iris_supervised"
59
60 # tensorflow maybe incompatible? https://github.com/lmcinnes/umap/issues/821
61 "test_save_load"
62 ];
63
64 meta = with lib; {
65 description = "Uniform Manifold Approximation and Projection";
66 homepage = "https://github.com/lmcinnes/umap";
67 license = licenses.bsd3;
68 maintainers = with maintainers; [ ];
69 };
70}