anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / misc / nimbo / default.nix
blobd028f205f3d531e319589c6f252f363c3fd5e867
1 { lib
2 , python3
3 , fetchFromGitHub
4 , installShellFiles
5 , awscli
6 }:
8 python3.pkgs.buildPythonApplication rec {
9   pname = "nimbo";
10   version = "0.3.0";
11   disabled = python3.pythonOlder "3.6";
13   src = fetchFromGitHub {
14     owner = "nimbo-sh";
15     repo = pname;
16     rev = "v${version}";
17     sha256 = "YC5T02Sw22Uczufbyts8l99oCQW4lPq0gPMRXCoKsvw=";
18   };
20   # Rich + Colorama are added in `propagatedBuildInputs`
21   postPatch = ''
22     substituteInPlace setup.py \
23       --replace "awscli>=1.19<2.0" "" \
24       --replace "colorama==0.4.3" "" \
25       --replace "rich>=10.1.0" ""
26   '';
28   nativeBuildInputs = [ installShellFiles ];
30   propagatedBuildInputs = with python3.pkgs; [
31     setuptools
32     boto3
33     requests
34     click
35     pyyaml
36     pydantic
37     rich
38     colorama
39   ];
41   # nimbo tests require an AWS instance
42   doCheck = false;
43   pythonImportsCheck = [ "nimbo" ];
45   makeWrapperArgs = [
46     "--prefix" "PATH" ":" (lib.makeBinPath [ awscli ])
47   ];
49   postInstall = ''
50     installShellCompletion --cmd nimbo \
51       --zsh <(_NIMBO_COMPLETE=source_zsh $out/bin/nimbo) \
52       --bash <(_NIMBO_COMPLETE=source_bash $out/bin/nimbo) \
53       --fish  <(_NIMBO_COMPLETE=source_fish $out/bin/nimbo)
54   '';
56   meta = with lib; {
57     description = "Run machine learning jobs on AWS with a single command";
58     homepage = "https://github.com/nimbo-sh/nimbo";
59     license = licenses.bsl11;
60     maintainers = with maintainers; [ noreferences ];
61   };