1{ lib
2, buildPythonPackage
3, fetchPypi
4, google-auth
5, google-cloud-core
6, google-cloud-iam
7, google-cloud-kms
8, google-cloud-testutils
9, google-resumable-media
10, mock
11, protobuf
12, pytestCheckHook
13, pythonOlder
14, requests
15}:
16
17buildPythonPackage rec {
18 pname = "google-cloud-storage";
19 version = "2.10.0";
20 format = "setuptools";
21
22 disabled = pythonOlder "3.7";
23
24 src = fetchPypi {
25 inherit pname version;
26 hash = "sha256-k0sx6tXzmU5TYPn/V1CYLFtrEWBNwHK8RSwlll4Hbcc=";
27 };
28
29 propagatedBuildInputs = [
30 google-auth
31 google-cloud-core
32 google-resumable-media
33 requests
34 ];
35
36 passthru.optional-dependencies = {
37 protobuf = [
38 protobuf
39 ];
40 };
41
42 nativeCheckInputs = [
43 google-cloud-iam
44 google-cloud-kms
45 google-cloud-testutils
46 mock
47 pytestCheckHook
48 ];
49
50 # Disable tests which require credentials and network access
51 disabledTests = [
52 "create"
53 "download"
54 "get"
55 "post"
56 "upload"
57 "test_build_api_url"
58 "test_ctor_mtls"
59 "test_hmac_key_crud"
60 "test_list_buckets"
61 "test_open"
62 "test_anonymous_client_access_to_public_bucket"
63 "test_ctor_w_custom_endpoint_use_auth"
64 ];
65
66 disabledTestPaths = [
67 "tests/unit/test_bucket.py"
68 "tests/system/test_blob.py"
69 "tests/system/test_bucket.py"
70 "tests/system/test_fileio.py"
71 "tests/system/test_kms_integration.py"
72 "tests/unit/test_transfer_manager.py"
73 ];
74
75 preCheck = ''
76 # prevent google directory from shadowing google imports
77 rm -r google
78
79 # requires docker and network
80 rm tests/conformance/test_conformance.py
81 '';
82
83 pythonImportsCheck = [
84 "google.cloud.storage"
85 ];
86
87 meta = with lib; {
88 description = "Google Cloud Storage API client library";
89 homepage = "https://github.com/googleapis/python-storage";
90 changelog = "https://github.com/googleapis/python-storage/blob/v${version}/CHANGELOG.md";
91 license = licenses.asl20;
92 maintainers = with maintainers; [ ];
93 };
94}