about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/opentsne/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/opentsne/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentsne/default.nix56
1 files changed, 56 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/opentsne/default.nix b/nixpkgs/pkgs/development/python-modules/opentsne/default.nix
new file mode 100644
index 000000000000..beab3b0d5e6d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/opentsne/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cython
+, numpy
+, scipy
+, scikit-learn
+, pytestCheckHook
+, nix-update-script
+, setuptools
+}:
+
+let
+  self = buildPythonPackage rec {
+    pname = "opentsne";
+    version = "1.0.0";
+    format = "pyproject";
+
+    src = fetchFromGitHub {
+      owner = "pavlin-policar";
+      repo = "openTSNE";
+      rev = "v${version}";
+      hash = "sha256-L5Qx6dMJlXF3EaWwlFTQ3dkhGXc5PvQBXYJo+QO+Hxc=";
+    };
+
+    propagatedBuildInputs = [ numpy scipy scikit-learn ];
+    nativeBuildInputs = [ cython setuptools ];
+
+    pythonImportsCheck = [ "openTSNE" ];
+    doCheck = false;
+
+    passthru = {
+      updateScript = nix-update-script {};
+      tests.pytest = self.overridePythonAttrs (old: {
+        pname = "${old.pname}-tests";
+        format = "other";
+
+        postPatch = "rm openTSNE -rf";
+
+        doBuild = false;
+        doInstall = false;
+
+        doCheck = true;
+        nativeCheckInputs = [ pytestCheckHook self ];
+      });
+    };
+
+    meta = {
+      description = "Modular Python implementation of t-Distributed Stochasitc Neighbor Embedding";
+      homepage = "https://github.com/pavlin-policar/openTSNE";
+      changelog = "https://github.com/pavlin-policar/openTSNE/releases/tag/${version}";
+      license = [ lib.licenses.bsd3 ];
+      maintainers = [ lib.maintainers.lucasew ];
+    };
+  };
+in self