nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 dnspython,
5 fetchFromGitHub,
6 icalendar,
7 icalendar-searcher,
8 lxml,
9 manuel,
10 pytestCheckHook,
11 python,
12 radicale,
13 recurring-ical-events,
14 niquests,
15 hatchling,
16 hatch-vcs,
17 proxy-py,
18 pyfakefs,
19 toPythonModule,
20 tzlocal,
21 vobject,
22 xandikos,
23 writableTmpDirAsHomeHook,
24}:
25
26buildPythonPackage rec {
27 pname = "caldav";
28 version = "2.2.3";
29 pyproject = true;
30
31 src = fetchFromGitHub {
32 owner = "python-caldav";
33 repo = "caldav";
34 tag = "v${version}";
35 hash = "sha256-v+r52YBrtE/FgUxOQoN0uLDmDOjJM7OvKQE1vZ49F+A=";
36 };
37
38 build-system = [
39 hatchling
40 hatch-vcs
41 ];
42
43 dependencies = [
44 dnspython
45 lxml
46 niquests
47 icalendar
48 icalendar-searcher
49 recurring-ical-events
50 ];
51
52 nativeCheckInputs = [
53 manuel
54 proxy-py
55 pyfakefs
56 pytestCheckHook
57 (toPythonModule (radicale.override { python3 = python; }))
58 tzlocal
59 vobject
60 writableTmpDirAsHomeHook
61 (toPythonModule (xandikos.override { python3Packages = python.pkgs; }))
62 ];
63
64 disabledTests = [
65 # test contacts CalDAV servers on the internet
66 "test_rfc8764_test_conf"
67 ];
68
69 pythonImportsCheck = [ "caldav" ];
70
71 meta = {
72 description = "CalDAV (RFC4791) client library";
73 homepage = "https://github.com/python-caldav/caldav";
74 changelog = "https://github.com/python-caldav/caldav/blob/${src.tag}/CHANGELOG.md";
75 license = lib.licenses.asl20;
76 maintainers = with lib.maintainers; [
77 marenz
78 dotlambda
79 ];
80 };
81}