Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / skein / default.nix
blobff0884330b39633e2b67c6fc788b927a59d6684a
1 { buildPythonPackage
2 , callPackage
3 , fetchPypi
4 , isPy27
5 , lib
6 , cryptography
7 , grpcio
8 , pyyaml
9 , grpcio-tools
10 , hadoop
11 , pytestCheckHook
12 , python
15 buildPythonPackage rec {
16   pname = "skein";
17   version = "0.8.2";
18   format = "setuptools";
19   src = fetchPypi {
20     inherit pname version;
21     hash = "sha256-nXTqsJNX/LwAglPcPZkmdYPfF+vDLN+nNdZaDFTrHzE=";
22   };
24   # Update this hash if bumping versions
25   jarHash = "sha256-x2KH6tnoG7sogtjrJvUaxy0PCEA8q/zneuI969oBOKo=";
26   skeinJar = callPackage ./skeinjar.nix { inherit pname version jarHash; };
28   propagatedBuildInputs = [ cryptography grpcio pyyaml ];
29   buildInputs = [ grpcio-tools ];
31   preBuild = ''
32     # Ensure skein.jar exists skips the maven build in setup.py
33     mkdir -p skein/java
34     ln -s ${skeinJar} skein/java/skein.jar
35   '';
37   postPatch = ''
38     substituteInPlace skein/core.py --replace "'yarn'" "'${hadoop}/bin/yarn'" \
39       --replace "else 'java'" "else '${hadoop.jdk}/bin/java'"
40   '';
42   pythonImportsCheck = [ "skein" ];
44   nativeCheckInputs = [ pytestCheckHook ];
45   # These tests require connecting to a YARN cluster. They could be done through NixOS tests later.
46   disabledTests = [
47     "test_ui"
48     "test_tornado"
49     "test_kv"
50     "test_core"
51     "test_cli"
52   ];
54   meta = with lib; {
55     homepage = "https://jcristharif.com/skein";
56     description = "A tool and library for easily deploying applications on Apache YARN";
57     mainProgram = "skein";
58     license = licenses.bsd3;
59     maintainers = with maintainers; [ alexbiehl illustris ];
60     # https://github.com/NixOS/nixpkgs/issues/48663#issuecomment-1083031627
61     # replace with https://github.com/NixOS/nixpkgs/pull/140325 once it is merged
62     broken = lib.traceIf isPy27 "${pname} not supported on ${python.executable}" isPy27;
63   };