1{ 2 lib, 3 buildPythonPackage, 4 blessed, 5 fetchFromGitHub, 6 invoke, 7 pythonOlder, 8 releases, 9 semantic-version, 10 tabulate, 11 tqdm, 12 twine, 13 pytestCheckHook, 14 pytest-relaxed, 15 pytest-mock, 16 icecream, 17 pip, 18}: 19 20buildPythonPackage rec { 21 pname = "invocations"; 22 version = "3.3.0"; 23 format = "setuptools"; 24 25 disabled = pythonOlder "3.6"; 26 27 src = fetchFromGitHub { 28 owner = "pyinvoke"; 29 repo = "invocations"; 30 tag = version; 31 hash = "sha256-JnhdcxhBNsYgDMcljtGKjOT1agujlao/66QifGuh6I0="; 32 }; 33 34 patches = [ ./replace-blessings-with-blessed.patch ]; 35 36 postPatch = '' 37 substituteInPlace setup.py \ 38 --replace "semantic_version>=2.4,<2.7" "semantic_version" 39 ''; 40 41 propagatedBuildInputs = [ 42 blessed 43 invoke 44 releases 45 semantic-version 46 tabulate 47 tqdm 48 twine 49 ]; 50 51 nativeCheckInputs = [ 52 pytestCheckHook 53 pytest-relaxed 54 pytest-mock 55 icecream 56 pip 57 ]; 58 59 pythonImportsCheck = [ "invocations" ]; 60 61 disabledTests = [ 62 # invoke.exceptions.UnexpectedExit 63 "autodoc_" 64 65 # ValueError: Call either Version('1.2.3') or Version(major=1, ...) 66 "component_state_enums_contain_human_readable_values" 67 "load_version_" 68 "prepare_" 69 "status_" 70 ]; 71 72 meta = with lib; { 73 description = "Common/best-practice Invoke tasks and collections"; 74 homepage = "https://invocations.readthedocs.io/"; 75 changelog = "https://github.com/pyinvoke/invocations/blob/${version}/docs/changelog.rst"; 76 license = licenses.bsd2; 77 maintainers = with maintainers; [ samuela ]; 78 }; 79}