1{ lib
2, buildPythonPackage
3, blessings
4, fetchFromGitHub
5, invoke
6, pythonOlder
7, releases
8, semantic-version
9, tabulate
10, tqdm
11, twine
12}:
13
14buildPythonPackage rec {
15 pname = "invocations";
16 version = "3.3.0";
17 format = "setuptools";
18
19 disabled = pythonOlder "3.6";
20
21 src = fetchFromGitHub {
22 owner = "pyinvoke";
23 repo = pname;
24 rev = "refs/tags/${version}";
25 hash = "sha256-JnhdcxhBNsYgDMcljtGKjOT1agujlao/66QifGuh6I0=";
26 };
27
28 postPatch = ''
29 substituteInPlace setup.py \
30 --replace "semantic_version>=2.4,<2.7" "semantic_version"
31 '';
32
33 propagatedBuildInputs = [
34 blessings
35 invoke
36 releases
37 semantic-version
38 tabulate
39 tqdm
40 twine
41 ];
42
43 # There's an error loading the test suite. See https://github.com/pyinvoke/invocations/issues/29.
44 doCheck = false;
45
46 pythonImportsCheck = [
47 "invocations"
48 ];
49
50 meta = with lib; {
51 description = "Common/best-practice Invoke tasks and collections";
52 homepage = "https://invocations.readthedocs.io/";
53 changelog = "https://github.com/pyinvoke/invocations/blob/${version}/docs/changelog.rst";
54 license = licenses.bsd2;
55 maintainers = with maintainers; [ samuela ];
56 };
57}