1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pythonOlder
5, icalendar
6, lxml
7, mock
8, nose
9, pytz
10, requests
11, six
12, tzlocal
13, vobject
14}:
15
16buildPythonPackage rec {
17 pname = "caldav";
18 version = "0.8.0";
19
20 src = fetchFromGitHub {
21 owner = "python-caldav";
22 repo = pname;
23 rev = "v${version}";
24 sha256 = "11q3svns3a2ywfci739krxbh67cx691qja772wq22606blyygyjy";
25 };
26
27 nativeBuildInputs = lib.optionals (pythonOlder "3.5") [ mock ];
28 propagatedBuildInputs = [ six requests vobject lxml ]
29 ++ lib.optionals (pythonOlder "3.6") [ pytz tzlocal ];
30
31 checkInputs = [
32 icalendar
33 nose
34 tzlocal
35 ];
36
37 checkPhase = ''
38 nosetests tests
39 '';
40
41 # xandikos and radicale is only a optional test dependency, not available for python3
42 postPatch = ''
43 substituteInPlace setup.py \
44 --replace ", 'xandikos'" "" \
45 --replace ", 'radicale'" ""
46 '';
47
48 pythonImportsCheck = [ "caldav" ];
49
50 meta = with lib; {
51 description = "This project is a CalDAV (RFC4791) client library for Python.";
52 homepage = "https://github.com/python-caldav/caldav";
53 license = licenses.asl20;
54 maintainers = with maintainers; [ marenz ];
55 #broken = true; # requires radicale which is not packaged yet
56 };
57}