about summary refs log tree commit diff
path: root/pkgs/development/python-modules/skein/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/skein/default.nix')
-rw-r--r--pkgs/development/python-modules/skein/default.nix47
1 files changed, 34 insertions, 13 deletions
diff --git a/pkgs/development/python-modules/skein/default.nix b/pkgs/development/python-modules/skein/default.nix
index 56e853f73e2e2..8dc3391e9e97a 100644
--- a/pkgs/development/python-modules/skein/default.nix
+++ b/pkgs/development/python-modules/skein/default.nix
@@ -2,26 +2,29 @@
 , callPackage
 , fetchPypi
 , isPy27
-, jre
 , lib
-, pythonPackages
-
+, cryptography
+, grpcio
+, pyyaml
+, grpcio-tools
+, hadoop
+, pytestCheckHook
+, python
 }:
 
-let
+buildPythonPackage rec {
   pname = "skein";
   version = "0.8.1";
   src = fetchPypi {
     inherit pname version;
     sha256 = "04208b4be9df2dc68ac5b3e3ae51fd9b589add95ea1b67222a8de754d17b1efa";
   };
-  skeinJar = callPackage ./skeinjar.nix { inherit src version; };
-in
-buildPythonPackage rec {
-  inherit pname version src;
-  disabled = isPy27;
+  # Update this hash if bumping versions
+  jarHash = "sha256-UGiEoTZ17IhLG72FZ18Zb+Ej4T8z9rMIMDUxzSZGZyY=";
+  skeinJar = callPackage ./skeinjar.nix { inherit pname version jarHash; };
 
-  propagatedBuildInputs = with pythonPackages; [ cryptography grpcio grpcio-tools jupyter pytest pyyaml requests jre ];
+  propagatedBuildInputs = [ cryptography grpcio pyyaml ];
+  buildInputs = [ grpcio-tools ];
 
   preBuild = ''
     # Ensure skein.jar exists skips the maven build in setup.py
@@ -29,12 +32,30 @@ buildPythonPackage rec {
     ln -s ${skeinJar} skein/java/skein.jar
   '';
 
+  postPatch = ''
+    substituteInPlace skein/core.py --replace "'yarn'" "'${hadoop}/bin/yarn'" \
+      --replace "else 'java'" "else '${hadoop.jdk}/bin/java'"
+  '';
+
+  pythonImportsCheck = [ "skein" ];
+
+  checkInputs = [ pytestCheckHook ];
+  # These tests require connecting to a YARN cluster. They could be done through NixOS tests later.
+  disabledTests = [
+    "test_ui"
+    "test_tornado"
+    "test_kv"
+    "test_core"
+    "test_cli"
+  ];
+
   meta = with lib; {
     homepage = "https://jcristharif.com/skein";
     description = "A tool and library for easily deploying applications on Apache YARN";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ alexbiehl ];
-    broken = true; # maven repo src isn't stable
+    maintainers = with maintainers; [ alexbiehl illustris ];
+    # https://github.com/NixOS/nixpkgs/issues/48663#issuecomment-1083031627
+    # replace with https://github.com/NixOS/nixpkgs/pull/140325 once it is merged
+    broken = lib.traceIf isPy27 "${pname} not supported on ${python.executable}" isPy27;
   };
-
 }