1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonAtLeast,
6 setuptools,
7 certifi,
8 click,
9 keyring,
10 keyrings-alt,
11 pytz,
12 requests,
13 six,
14 tzlocal,
15 pytest-mock,
16 pytestCheckHook,
17 future,
18}:
19
20buildPythonPackage rec {
21 pname = "pyicloud";
22 version = "1.0.0";
23 pyproject = true;
24
25 src = fetchFromGitHub {
26 owner = "picklepete";
27 repo = pname;
28 rev = version;
29 hash = "sha256-2E1pdHHt8o7CGpdG+u4xy5OyNCueUGVw5CY8oicYd5w=";
30 };
31
32 nativeBuildInputs = [ setuptools ];
33
34 propagatedBuildInputs = [
35 certifi
36 click
37 future
38 keyring
39 keyrings-alt
40 pytz
41 requests
42 six
43 tzlocal
44 ];
45
46 nativeCheckInputs = [
47 pytest-mock
48 pytestCheckHook
49 ];
50
51 disabledTests = lib.optionals (pythonAtLeast "3.12") [
52 # https://github.com/picklepete/pyicloud/issues/446
53 "test_storage"
54 ];
55
56 meta = with lib; {
57 description = "PyiCloud is a module which allows pythonistas to interact with iCloud webservices";
58 mainProgram = "icloud";
59 homepage = "https://github.com/picklepete/pyicloud";
60 license = licenses.mit;
61 maintainers = [ maintainers.mic92 ];
62 };
63}