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