nixpkgs/pkgs/development/python-modules/icontract/default.nix
Guillaume Girol 33afbf39f6 treewide: switch to nativeCheckInputs
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
2023-01-21 12:00:00 +00:00

70 lines
1.7 KiB
Nix

{ lib
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
, astor
, asttokens
, asyncstdlib
, deal
, dpcontracts
, numpy
, pytestCheckHook
, typing-extensions
}:
buildPythonPackage rec {
pname = "icontract";
version = "2.6.2";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "Parquery";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-NUgMt/o9EpSQyOiAhYBVJtQKJn0Pd2lI45bKlo2z7mk=";
};
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
];
nativeCheckInputs = [
astor
asyncstdlib
deal
dpcontracts
numpy
pytestCheckHook
];
disabledTestPaths = [
# mypy decorator checks don't pass. For some reason mypy
# doesn't check the python file provided in the test.
"tests/test_mypy_decorators.py"
];
# Upstream adds some plain text files direct to the package's root directory
# https://github.com/Parquery/icontract/blob/master/setup.py#L63
postInstall = ''
rm -f $out/{LICENSE.txt,README.rst,requirements.txt}
'';
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/v${version}/CHANGELOG.rst";
license = licenses.mit;
maintainers = with maintainers; [ gador thiagokokada ];
};
}