evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / development / python-modules / deal / default.nix
blob2af4c31acca759296a443095e07e0b2e3c488d5b
2   lib,
3   astroid,
4   buildPythonPackage,
5   deal-solver,
6   docstring-parser,
7   fetchFromGitHub,
8   flit-core,
9   hypothesis,
10   marshmallow,
11   pygments,
12   pytestCheckHook,
13   pythonOlder,
14   sphinx,
15   typeguard,
16   urllib3,
17   vaa,
20 buildPythonPackage rec {
21   pname = "deal";
22   version = "4.24.4";
23   pyproject = true;
25   disabled = pythonOlder "3.7";
27   src = fetchFromGitHub {
28     owner = "life4";
29     repo = "deal";
30     rev = "refs/tags/${version}";
31     hash = "sha256-4orpoYfPGSvquhg9w63uUe8QbBa2RUpxaEJ9uy28+fU=";
32   };
34   postPatch = ''
35     # don't do coverage
36     substituteInPlace pyproject.toml \
37       --replace-fail '"--cov-fail-under=100",' "" \
38       --replace-fail '"--cov=deal",' "" \
39       --replace-fail '"--cov-report=html",' "" \
40       --replace-fail '"--cov-report=term-missing:skip-covered",' ""
41   '';
43   build-system = [ flit-core ];
45   dependencies = [
46     astroid
47     deal-solver
48     pygments
49     typeguard
50   ];
52   nativeCheckInputs = [
53     docstring-parser
54     hypothesis
55     marshmallow
56     pytestCheckHook
57     sphinx
58     urllib3
59     vaa
60   ];
62   disabledTests = [
63     # Tests need internet access
64     "test_smoke_has"
65     "test_pure_offline"
66     "test_raises_doesnt_override_another_contract"
67     "test_raises_doesnt_override_another_contract_async"
68     "test_raises_generator"
69     # AttributeError: module 'vaa' has no attribute 'Error'
70     "test_source_vaa_scheme"
71     "test_vaa_scheme_and_custom_exception"
72     "test_scheme_string_validation_args_correct"
73     "test_method_chain_decorator_with_scheme_is_fulfilled"
74     "test_scheme_contract_is_satisfied_when_setting_arg"
75     "test_scheme_contract_is_satisfied_within_chain"
76     "test_scheme_errors_rewrite_message"
77     # assert errors
78     "test_doctest"
79     "test_no_violations"
80     "test_source_get_lambda_multiline_splitted_dec"
81   ];
83   disabledTestPaths = [
84     # Test needs internet access
85     "tests/test_runtime/test_offline.py"
86     # depends on typeguard <4.0.0 for tests, but >=4.0.0 seems fine for runtime
87     # https://github.com/life4/deal/blob/9be70fa1c5a0635880619b2cea83a9f6631eb236/pyproject.toml#L40
88     "tests/test_testing.py"
89   ];
91   pythonImportsCheck = [ "deal" ];
93   meta = with lib; {
94     description = "Library for design by contract (DbC) and checking values, exceptions, and side-effects";
95     longDescription = ''
96       In a nutshell, deal empowers you to write bug-free code.
97       By adding a few decorators to your code, you get for free tests, static analysis, formal verification,
98       and much more.
99     '';
100     homepage = "https://github.com/life4/deal";
101     changelog = "https://github.com/life4/deal/releases/tag/${version}";
102     license = licenses.mit;
103     maintainers = with maintainers; [ gador ];
104   };