diff options
Diffstat (limited to 'pkgs/development/python-modules/icontract')
-rw-r--r-- | pkgs/development/python-modules/icontract/default.nix | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/icontract/default.nix b/pkgs/development/python-modules/icontract/default.nix new file mode 100644 index 00000000000..7b7d20ce17f --- /dev/null +++ b/pkgs/development/python-modules/icontract/default.nix @@ -0,0 +1,78 @@ +{ lib +, buildPythonPackage +, pythonOlder +, fetchFromGitHub +, asttokens +, typing-extensions +, pytestCheckHook +, yapf +, docutils +, pygments +, dpcontracts +, tabulate +, py-cpuinfo +, typeguard +, astor +, numpy +, asyncstdlib +}: + +buildPythonPackage rec { + pname = "icontract"; + version = "2.6.1"; + format = "setuptools"; + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "Parquery"; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-QyuegyjVyRLQS0DjBJXpTDNeBM7LigGJ5cztVOO7e3Y="; + }; + + preCheck = '' + # we don't want to use the precommit.py script to build the package. + # For the tests to succeed, "ICONTRACT_SLOW" needs to be set. + # see https://github.com/Parquery/icontract/blob/aaeb1b06780a34b05743377e4cb2458780e808d3/precommit.py#L57 + export ICONTRACT_SLOW=1 + ''; + + + propagatedBuildInputs = [ + asttokens + typing-extensions + ]; + + checkInputs = [ + pytestCheckHook + yapf + docutils + pygments + dpcontracts + tabulate + py-cpuinfo + typeguard + astor + numpy + asyncstdlib + ]; + + disabledTestPaths = [ + # needs an old version of deal to comply with the tests + # see https://github.com/Parquery/icontract/issues/244 + "tests_with_others/test_deal.py" + # mypy decorator checks don't pass. For some reaseon mypy + # doesn't check the python file provided in the test. + "tests/test_mypy_decorators.py" + ]; + + pythonImportsCheck = [ "icontract" ]; + + meta = with lib; { + description = "Provide design-by-contract with informative violation messages"; + homepage = "https://github.com/Parquery/icontract"; + changelog = "https://github.com/Parquery/icontract/blob/master/CHANGELOG.rst"; + license = licenses.mit; + maintainers = with maintainers; [ gador ]; + }; +} |