1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pytestCheckHook,
6 pythonOlder,
7 google-auth,
8 google-auth-oauthlib,
9 google-cloud-storage,
10 requests,
11 decorator,
12 fsspec,
13 ujson,
14 aiohttp,
15 crcmod,
16 pytest-timeout,
17 pytest-vcr,
18 vcrpy,
19}:
20
21buildPythonPackage rec {
22 pname = "gcsfs";
23 version = "2024.2.0";
24 format = "setuptools";
25
26 disabled = pythonOlder "3.7";
27
28 src = fetchFromGitHub {
29 owner = "fsspec";
30 repo = pname;
31 rev = "refs/tags/${version}";
32 hash = "sha256-6O09lP2cWLzeMTBathb3O/tVGZPEHSqujfUPWZIBUJI=";
33 };
34
35 propagatedBuildInputs = [
36 aiohttp
37 crcmod
38 decorator
39 fsspec
40 google-auth
41 google-auth-oauthlib
42 google-cloud-storage
43 requests
44 ujson
45 ];
46
47 nativeCheckInputs = [
48 pytest-vcr
49 pytest-timeout
50 pytestCheckHook
51 vcrpy
52 ];
53
54 disabledTests = [
55 # Cannot connect to host storage.googleapis.com:443
56 "test_credentials_from_raw_token"
57 ];
58
59 disabledTestPaths = [
60 # Tests require a running Docker instance
61 "gcsfs/tests/test_core.py"
62 "gcsfs/tests/test_mapping.py"
63 "gcsfs/tests/test_retry.py"
64 "gcsfs/tests/derived/gcsfs_test.py"
65 "gcsfs/tests/test_inventory_report_listing.py"
66 ];
67
68 pytestFlagsArray = [ "-x" ];
69
70 pythonImportsCheck = [ "gcsfs" ];
71
72 meta = with lib; {
73 description = "Convenient Filesystem interface over GCS";
74 homepage = "https://github.com/fsspec/gcsfs";
75 changelog = "https://github.com/fsspec/gcsfs/raw/${version}/docs/source/changelog.rst";
76 license = licenses.bsd3;
77 maintainers = with maintainers; [ nbren12 ];
78 };
79}