1{
2 lib,
3 appdirs,
4 buildPythonPackage,
5 fetchPypi,
6 fsspec,
7 funcy,
8 google-api-python-client,
9 oauth2client,
10 pyopenssl,
11 pythonOlder,
12 pyyaml,
13 setuptools,
14 setuptools-scm,
15 tqdm,
16}:
17
18buildPythonPackage rec {
19 pname = "pydrive2";
20 version = "1.21.3";
21 pyproject = true;
22
23 disabled = pythonOlder "3.8";
24
25 src = fetchPypi {
26 inherit pname version;
27 hash = "sha256-ZJuE1gxje8cUZIUDlTWqjxJUrRVkI3OfB+XTJQdEfBM=";
28 };
29
30 build-system = [
31 setuptools
32 setuptools-scm
33 ];
34
35 dependencies = [
36 google-api-python-client
37 oauth2client
38 pyopenssl
39 pyyaml
40 ];
41
42 optional-dependencies = {
43 fsspec = [
44 appdirs
45 fsspec
46 funcy
47 tqdm
48 ];
49 };
50
51 # Tests require a account and network access
52 doCheck = false;
53
54 pythonImportsCheck = [ "pydrive2" ];
55
56 meta = with lib; {
57 description = "Google Drive API Python wrapper library";
58 homepage = "https://github.com/iterative/PyDrive2";
59 changelog = "https://github.com/iterative/PyDrive2/releases/tag/${version}";
60 # Not compatible with pyopenssl 24.3.0
61 # https://github.com/iterative/PyDrive2/issues/361
62 # TODO: re-enable it in `duplicity` when fixed
63 broken = true;
64 license = licenses.asl20;
65 maintainers = with maintainers; [ sei40kr ];
66 };
67}