nixpkgs/pkgs/development/python-modules/deal/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

102 lines
2.3 KiB
Nix

{ lib
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
, flit-core
, astroid
, pytestCheckHook
, docstring-parser
, marshmallow
, sphinx
, hypothesis
, vaa
, deal-solver
, pygments
, typeguard
, urllib3
, flake8
}:
buildPythonPackage rec {
pname = "deal";
version = "4.23.4";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "life4";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-YwozwoTb1JsvrwcTntlpWpQJ9DszH2lmtuKkK8qZiG0=";
};
postPatch = ''
# don't do coverage
substituteInPlace pyproject.toml \
--replace "\"--cov-fail-under=100\"," "" \
--replace "\"--cov=deal\"," "" \
--replace "\"--cov-report=html\"," "" \
--replace "\"--cov-report=term-missing:skip-covered\"," ""
'';
nativeBuildInputs = [
flit-core
];
propagatedBuildInputs = [
astroid
deal-solver
pygments
typeguard
];
nativeCheckInputs = [
pytestCheckHook
docstring-parser
marshmallow
sphinx
hypothesis
vaa
urllib3
flake8
];
disabledTests = [
# needs internet access
"test_smoke_has"
"test_pure_offline"
"test_raises_doesnt_override_another_contract"
"test_raises_doesnt_override_another_contract_async"
"test_raises_generator"
# AttributeError: module 'vaa' has no attribute 'Error'
"test_source_vaa_scheme"
"test_vaa_scheme_and_custom_exception"
"test_scheme_string_validation_args_correct"
"test_method_chain_decorator_with_scheme_is_fulfilled"
"test_scheme_contract_is_satisfied_when_setting_arg"
"test_scheme_contract_is_satisfied_within_chain"
"test_scheme_errors_rewrite_message"
# broken since pytest > 7.1.3
"test_exception_hook"
];
disabledTestPaths = [
# needs internet access
"tests/test_runtime/test_offline.py"
];
pythonImportsCheck = [ "deal" ];
meta = with lib; {
description = "Library for design by contract (DbC) and checking values, exceptions, and side-effects";
longDescription = ''
In a nutshell, deal empowers you to write bug-free code.
By adding a few decorators to your code, you get for free tests, static analysis, formal verification, and much more
'';
homepage = "https://github.com/life4/deal";
license = licenses.mit;
maintainers = with maintainers; [ gador ];
};
}