1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 pythonOlder,
6 click,
7 click-log,
8 click-threading,
9 requests-toolbelt,
10 requests,
11 atomicwrites,
12 hypothesis,
13 pytestCheckHook,
14 pytest-cov-stub,
15 pytest-subtesthack,
16 setuptools,
17 setuptools-scm,
18 wheel,
19 aiostream,
20 aiohttp-oauthlib,
21 aiohttp,
22 pytest-asyncio,
23 trustme,
24 aioresponses,
25 vdirsyncer,
26 testers,
27}:
28
29buildPythonPackage rec {
30 pname = "vdirsyncer";
31 version = "0.19.3";
32 format = "pyproject";
33
34 disabled = pythonOlder "3.7";
35
36 src = fetchPypi {
37 inherit pname version;
38 hash = "sha256-5DeFH+uYXew1RGVPj5z23RCbCwP34ZlWCGYDCS/+so8=";
39 };
40
41 nativeBuildInputs = [
42 setuptools
43 setuptools-scm
44 wheel
45 ];
46
47 pythonRelaxDeps = [ "aiostream" ];
48
49 propagatedBuildInputs = [
50 atomicwrites
51 click
52 click-log
53 click-threading
54 requests
55 requests-toolbelt
56 aiostream
57 aiohttp
58 aiohttp-oauthlib
59 ];
60
61 nativeCheckInputs = [
62 hypothesis
63 pytestCheckHook
64 pytest-cov-stub
65 pytest-subtesthack
66 pytest-asyncio
67 trustme
68 aioresponses
69 ];
70
71 preCheck = ''
72 export DETERMINISTIC_TESTS=true
73 '';
74
75 disabledTests = [
76 "test_create_collections" # Flaky test exceeds deadline on hydra: https://github.com/pimutils/vdirsyncer/issues/837
77 "test_request_ssl"
78 "test_verbosity"
79 ];
80
81 passthru.tests.version = testers.testVersion { package = vdirsyncer; };
82
83 meta = {
84 description = "Synchronize calendars and contacts";
85 homepage = "https://github.com/pimutils/vdirsyncer";
86 changelog = "https://github.com/pimutils/vdirsyncer/blob/v${version}/CHANGELOG.rst";
87 license = lib.licenses.bsd3;
88 maintainers = with lib.maintainers; [ stephen-huan ];
89 mainProgram = "vdirsyncer";
90 };
91}