1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 replaceVars,
6 hatch-vcs,
7 hatchling,
8 python-dateutil,
9 tzdata,
10 hypothesis,
11 pytestCheckHook,
12}:
13
14buildPythonPackage rec {
15 version = "6.3.1";
16 pname = "icalendar";
17 pyproject = true;
18
19 src = fetchFromGitHub {
20 owner = "collective";
21 repo = "icalendar";
22 tag = "v${version}";
23 hash = "sha256-lLcMuwKFdZbjscrp4dW5ybPHwcx9RHf44RH3BWwO6ng=";
24 };
25
26 patches = [
27 (replaceVars ./no-dynamic-version.patch {
28 inherit version;
29 })
30 ];
31
32 build-system = [
33 hatch-vcs
34 hatchling
35 ];
36
37 dependencies = [
38 python-dateutil
39 tzdata
40 ];
41
42 nativeCheckInputs = [
43 hypothesis
44 pytestCheckHook
45 ];
46
47 disabledTests = [
48 # AssertionError: assert {'Atlantic/Jan_Mayen'} == {'Arctic/Longyearbyen'}
49 "test_dateutil_timezone_is_matched_with_tzname"
50 "test_docstring_of_python_file"
51 # AssertionError: assert $TZ not in set()
52 "test_add_missing_timezones_to_example"
53 ];
54
55 enabledTestPaths = [ "src/icalendar" ];
56
57 meta = with lib; {
58 changelog = "https://github.com/collective/icalendar/blob/${src.tag}/CHANGES.rst";
59 description = "Parser/generator of iCalendar files";
60 mainProgram = "icalendar";
61 homepage = "https://github.com/collective/icalendar";
62 license = licenses.bsd2;
63 maintainers = with maintainers; [ olcai ];
64 };
65}