1{ lib
2, stdenv
3, fetchPypi
4, buildPythonPackage
5, importlib-metadata
6, isPy3k
7, mock
8, pytestCheckHook
9, cloudpickle
10, pyinotify
11, macfsevents
12, toml
13, doit-py
14, pyflakes
15, configclass
16, mergedict
17}:
18
19let doit = buildPythonPackage rec {
20 pname = "doit";
21 version = "0.36.0";
22
23 disabled = !isPy3k;
24
25 src = fetchPypi {
26 inherit pname version;
27 hash = "sha256-cdB8zJUUyyL+WdmJmVd2ZeqrV+FvZE0EM2rgtLriNLw=";
28 };
29
30 propagatedBuildInputs = [
31 cloudpickle
32 importlib-metadata
33 toml
34 ] ++ lib.optional stdenv.isLinux pyinotify
35 ++ lib.optional stdenv.isDarwin macfsevents;
36
37 nativeCheckInputs = [
38 configclass
39 doit-py
40 mergedict
41 mock
42 pyflakes
43 pytestCheckHook
44 ];
45
46 # escape infinite recursion with doit-py
47 doCheck = false;
48
49 passthru.tests = {
50 # hangs on darwin
51 check = doit.overridePythonAttrs (_: { doCheck = !stdenv.isDarwin; });
52 };
53
54 pythonImportsCheck = [ "doit" ];
55
56 meta = with lib; {
57 homepage = "https://pydoit.org/";
58 description = "A task management & automation tool";
59 license = licenses.mit;
60 longDescription = ''
61 doit is a modern open-source build-tool written in python
62 designed to be simple to use and flexible to deal with complex
63 work-flows. It is specially suitable for building and managing
64 custom work-flows where there is no out-of-the-box solution
65 available.
66 '';
67 maintainers = with maintainers; [ pSub ];
68 };
69
70}; in doit