biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / office / todoman / default.nix
blob75adb0425cc97e1071c0bb4c515e8d23134c6afd
2   fetchFromGitHub,
3   installShellFiles,
4   jq,
5   lib,
6   python3,
7 }:
9 python3.pkgs.buildPythonApplication rec {
10   pname = "todoman";
11   version = "4.4.0";
12   pyproject = true;
14   src = fetchFromGitHub {
15     owner = "pimutils";
16     repo = "todoman";
17     rev = "refs/tags/v${version}";
18     hash = "sha256-5tQaNT6QVN9mxa9t6OvMux4ZGy4flUqszTAwet2QL0w=";
19   };
21   nativeBuildInputs = [
22     installShellFiles
23   ];
25   build-system = with python3.pkgs; [
26     setuptools-scm
27   ];
29   dependencies = with python3.pkgs; [
30     atomicwrites
31     click
32     click-log
33     click-repl
34     humanize
35     icalendar
36     parsedatetime
37     python-dateutil
38     pyxdg
39     pytz
40     tabulate
41     urwid
42   ];
44   nativeCheckInputs = with python3.pkgs; [
45     freezegun
46     hypothesis
47     pytestCheckHook
48     pytest-cov-stub
49   ];
51   postInstall = ''
52     installShellCompletion --bash contrib/completion/bash/_todo
53     substituteInPlace contrib/completion/zsh/_todo --replace "jq " "${lib.getExe jq} "
54     installShellCompletion --zsh contrib/completion/zsh/_todo
55   '';
57   disabledTests = [
58     # Testing of the CLI part and output
59     "test_color_due_dates"
60     "test_color_flag"
61     "test_default_command"
62     "test_main"
63     "test_missing_cache_dir"
64     "test_sorting_null_values"
65     "test_xdg_existant"
66     # Tests are sensitive to performance
67     "test_sorting_fields"
68   ];
70   pythonImportsCheck = [
71     "todoman"
72   ];
74   meta = {
75     homepage = "https://github.com/pimutils/todoman";
76     description = "Standards-based task manager based on iCalendar";
77     longDescription = ''
78       Todoman is a simple, standards-based, cli todo (aka task) manager. Todos
79       are stored into iCalendar files, which means you can sync them via CalDAV
80       using, for example, vdirsyncer.
82       Todos are read from individual ics files from the configured directory.
83       This matches the vdir specification. There is support for the most common TODO
84       features for now (summary, description, location, due date and priority) for
85       now.
86       Unsupported fields may not be shown but are never deleted or altered.
87     '';
88     changelog = "https://todoman.readthedocs.io/en/stable/changelog.html#v${
89       builtins.replaceStrings [ "." ] [ "-" ] version
90     }";
91     license = lib.licenses.isc;
92     maintainers = with lib.maintainers; [
93       leenaars
94       antonmosich
95     ];
96     mainProgram = "todo";
97   };