Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / icontract / default.nix
blobf8b9fd589f1867b13d826699c208319895b32d46
1 { lib
2 , astor
3 , asttokens
4 , asyncstdlib
5 , buildPythonPackage
6 , deal
7 , dpcontracts
8 , fetchFromGitHub
9 , numpy
10 , pytestCheckHook
11 , pythonOlder
12 , setuptools
13 , typing-extensions
16 buildPythonPackage rec {
17   pname = "icontract";
18   version = "2.6.6";
19   pyproject = true;
21   disabled = pythonOlder "3.6";
23   src = fetchFromGitHub {
24     owner = "Parquery";
25     repo = "icontract";
26     rev = "refs/tags/v${version}";
27     hash = "sha256-R5/FBfuTvXItfTlNZMSnO18Q+etnHbQyXFWpaOpOLes=";
28   };
30   preCheck = ''
31     # we don't want to use the precommit.py script to build the package.
32     # For the tests to succeed, "ICONTRACT_SLOW" needs to be set.
33     # see https://github.com/Parquery/icontract/blob/aaeb1b06780a34b05743377e4cb2458780e808d3/precommit.py#L57
34     export ICONTRACT_SLOW=1
35   '';
37   build-system = [
38     setuptools
39   ];
41   dependencies = [
42     asttokens
43     typing-extensions
44   ];
46   nativeCheckInputs = [
47     astor
48     asyncstdlib
49     deal
50     dpcontracts
51     numpy
52     pytestCheckHook
53   ];
55   disabledTests = [
56     # AssertionError
57     "test_abstract_method_not_implemented"
58   ];
60   disabledTestPaths = [
61     # mypy decorator checks don't pass. For some reason mypy
62     # doesn't check the python file provided in the test.
63     "tests/test_mypy_decorators.py"
64     # Those tests seems to simply re-run some typeguard tests
65     "tests/test_typeguard.py"
66   ];
68   pytestFlagsArray = [
69     # RuntimeWarning: coroutine '*' was never awaited
70     "-W" "ignore::RuntimeWarning"
71   ];
73   pythonImportsCheck = [
74     "icontract"
75   ];
77   meta = with lib; {
78     description = "Provide design-by-contract with informative violation messages";
79     homepage = "https://github.com/Parquery/icontract";
80     changelog = "https://github.com/Parquery/icontract/blob/v${version}/CHANGELOG.rst";
81     license = licenses.mit;
82     maintainers = with maintainers; [ gador thiagokokada ];
83   };