Merge pull request #173140 from gador/init-icontract

This commit is contained in:
Sandro 2022-05-28 21:39:15 +02:00 committed by GitHub
commit 05bacb0c30
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 113 additions and 0 deletions

View File

@ -0,0 +1,31 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
}:
buildPythonPackage rec {
pname = "dpcontracts";
version = "unstable-2018-11-20";
format = "setuptools";
disabled = pythonOlder "3.5";
src = fetchFromGitHub {
owner = "deadpixi";
repo = "contracts";
rev = "45cb8542272c2ebe095c6efb97aa9407ddc8bf3c";
hash = "sha256-FygJPXo7lZ9tlfqY6KmPJ3PLIilMGLBr3013uj9hCEs=";
};
# package does not have any tests
doCheck = false;
pythonImportsCheck = [ "dpcontracts" ];
meta = with lib; {
description = "Provides a collection of decorators that makes it easy to write software using contracts";
homepage = "https://github.com/deadpixi/contracts";
license = licenses.lgpl3Only;
maintainers = with maintainers; [ gador ];
};
}

View File

@ -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 ];
};
}

View File

@ -2544,6 +2544,8 @@ in {
dpath = callPackage ../development/python-modules/dpath { };
dpcontracts = callPackage ../development/python-modules/dpcontracts { };
dpkt = callPackage ../development/python-modules/dpkt { };
dragonfly = callPackage ../development/python-modules/dragonfly { };
@ -4103,6 +4105,8 @@ in {
idasen = callPackage ../development/python-modules/idasen { };
icontract = callPackage ../development/python-modules/icontract { };
identify = callPackage ../development/python-modules/identify { };
idna = callPackage ../development/python-modules/idna { };