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