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