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