1{
2 lib,
3 attrs,
4 boto3,
5 buildPythonPackage,
6 click-completion,
7 click-didyoumean,
8 click-help-colors,
9 colorama,
10 fetchPypi,
11 gradient-statsd,
12 gradient-utils,
13 gql,
14 halo,
15 marshmallow,
16 progressbar2,
17 pyopenssl,
18 pyyaml,
19 requests,
20 requests-toolbelt,
21 terminaltables,
22 websocket-client,
23}:
24
25buildPythonPackage rec {
26 pname = "gradient";
27 version = "2.99.3";
28 format = "setuptools";
29
30 src = fetchPypi {
31 inherit pname version;
32 hash = "sha256-Ep3Qh9Q1xWt2JveCf/A/KInQ3cnGE7D1YNdavDS0ZE8=";
33 };
34
35 postPatch = ''
36 substituteInPlace setup.py \
37 --replace 'attrs<=' 'attrs>=' \
38 --replace 'colorama==' 'colorama>=' \
39 --replace 'gql[requests]==3.0.0a6' 'gql' \
40 --replace 'PyYAML==5.*' 'PyYAML' \
41 --replace 'marshmallow<' 'marshmallow>=' \
42 --replace 'websocket-client==0.57.*' 'websocket-client'
43 '';
44
45 propagatedBuildInputs = [
46 attrs
47 boto3
48 click-completion
49 click-didyoumean
50 click-help-colors
51 colorama
52 gql
53 gradient-statsd
54 gradient-utils
55 halo
56 marshmallow
57 progressbar2
58 pyopenssl
59 pyyaml
60 requests
61 requests-toolbelt
62 terminaltables
63 websocket-client
64 ];
65
66 # Tries to use /homeless-shelter to mimic container usage, etc
67 doCheck = false;
68
69 # marshmallow.exceptions.StringNotCollectionError: "only" should be a collection of strings.
70 # Support for marshmallow > 3
71 # pythonImportsCheck = [
72 # "gradient"
73 # ];
74
75 meta = with lib; {
76 description = "Command line interface for Gradient";
77 mainProgram = "gradient";
78 homepage = "https://github.com/Paperspace/gradient-cli";
79 license = licenses.isc;
80 platforms = platforms.unix;
81 maintainers = with maintainers; [ thoughtpolice ];
82 };
83}