1{
2 lib,
3 boto,
4 buildPythonPackage,
5 fasteners,
6 fetchFromGitHub,
7 freezegun,
8 google-reauth,
9 httplib2,
10 oauth2client,
11 pyopenssl,
12 pytestCheckHook,
13 pythonOlder,
14 pythonRelaxDepsHook,
15 retry-decorator,
16 rsa,
17 six,
18}:
19
20buildPythonPackage rec {
21 pname = "gcs-oauth2-boto-plugin";
22 version = "3.0";
23 format = "setuptools";
24
25 disabled = pythonOlder "3.7";
26
27 src = fetchFromGitHub {
28 owner = "GoogleCloudPlatform";
29 repo = pname;
30 rev = "refs/tags/v${version}";
31 hash = "sha256-slTxh2j9VhLiSyiTmJIFFakzpzH/+mgilDRxx0VqqKQ=";
32 };
33
34 postPatch = ''
35 substituteInPlace setup.py \
36 --replace "rsa==4.7.2" "rsa" \
37 --replace "version='2.7'" "version='${version}'"
38 '';
39
40 propagatedBuildInputs = [
41 boto
42 freezegun
43 google-reauth
44 httplib2
45 oauth2client
46 pyopenssl
47 retry-decorator
48 rsa
49 six
50 ];
51
52 nativeCheckInputs = [ pytestCheckHook ];
53
54 pythonImportsCheck = [ "gcs_oauth2_boto_plugin" ];
55
56 meta = with lib; {
57 description = "Auth plugin allowing use the use of OAuth 2.0 credentials for Google Cloud Storage";
58 homepage = "https://github.com/GoogleCloudPlatform/gcs-oauth2-boto-plugin";
59 changelog = "https://github.com/GoogleCloudPlatform/gcs-oauth2-boto-plugin/releases/tag/v${version}";
60 license = with licenses; [ asl20 ];
61 maintainers = with maintainers; [ fab ];
62 };
63}