1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 kitchen,
6 packaging,
7 poetry-core,
8 poetry-dynamic-versioning,
9 python-dateutil,
10 pythonOlder,
11 pythonRelaxDepsHook,
12 pytz,
13 taskwarrior,
14}:
15
16buildPythonPackage rec {
17 pname = "taskw-ng";
18 version = "0.2.6";
19 pyproject = true;
20
21 disabled = pythonOlder "3.8";
22
23 src = fetchFromGitHub {
24 owner = "bergercookie";
25 repo = "taskw-ng";
26 rev = "refs/tags/v${version}";
27 hash = "sha256-tlidTt0TzWnvfajYiIfvRv7OfakHY6zWAicmAwq/Z8w=";
28 };
29
30 pythonRelaxDeps = [
31 "packaging"
32 "pytz"
33 ];
34
35 build-system = [
36 poetry-core
37 poetry-dynamic-versioning
38 ];
39
40 nativeBuildInputs = [ pythonRelaxDepsHook ];
41
42 propagatedBuildInputs = [
43 kitchen
44 packaging
45 python-dateutil
46 pytz
47 ];
48
49 checkInputs = [ taskwarrior ];
50
51 # TODO: doesn't pass because `can_use` fails and `task --version` seems not to be answering.
52 # pythonImportsCheck = [ "taskw_ng" ];
53
54 meta = with lib; {
55 description = "Module to interact with the Taskwarrior API";
56 homepage = "https://github.com/bergercookie/taskw-ng";
57 changelog = "https://github.com/bergercookie/taskw-ng/blob/${src.rev}/CHANGELOG.rst";
58 license = licenses.gpl3Plus;
59 maintainers = with maintainers; [ raitobezarius ];
60 };
61}