1{ lib
2, buildPythonPackage
3, fetchPypi
4, pythonOlder
5, click
6, click-log
7, click-threading
8, requests-toolbelt
9, requests
10, requests_oauthlib # required for google oauth sync
11, atomicwrites
12, hypothesis
13, pytestCheckHook
14, pytest-localserver
15, pytest-subtesthack
16, setuptools-scm
17}:
18
19buildPythonPackage rec {
20 version = "0.18.0";
21 pname = "vdirsyncer";
22 disabled = pythonOlder "3.7";
23
24 src = fetchPypi {
25 inherit pname version;
26 sha256 = "sha256-J7w+1R93STX7ujkpFcjI1M9jmuUaRLZ0aGtJoQJfwgE=";
27 };
28
29 propagatedBuildInputs = [
30 atomicwrites
31 click
32 click-log
33 click-threading
34 requests
35 requests_oauthlib # required for google oauth sync
36 requests-toolbelt
37 ];
38
39 nativeBuildInputs = [
40 setuptools-scm
41 ];
42
43 checkInputs = [
44 hypothesis
45 pytestCheckHook
46 pytest-localserver
47 pytest-subtesthack
48 ];
49
50 postPatch = ''
51 sed -i -e '/--cov/d' -e '/--no-cov/d' setup.cfg
52 '';
53
54 preCheck = ''
55 export DETERMINISTIC_TESTS=true
56 '';
57
58 disabledTests = [
59 "test_create_collections" # Flaky test exceeds deadline on hydra: https://github.com/pimutils/vdirsyncer/issues/837
60 "test_request_ssl"
61 "test_verbosity"
62 ];
63
64 meta = with lib; {
65 homepage = "https://github.com/pimutils/vdirsyncer";
66 description = "Synchronize calendars and contacts";
67 license = licenses.mit;
68 maintainers = with maintainers; [ loewenheim ];
69 };
70}