Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib
2, buildPythonPackage
3, colorful
4, fetchFromGitHub
5, git
6, httpx
7, packaging
8, poetry-core
9, pytestCheckHook
10, typing-extensions
11, pythonOlder
12, rich
13, tomlkit
14}:
15
16buildPythonPackage rec {
17 pname = "pontos";
18 version = "22.12.0";
19 format = "pyproject";
20
21 disabled = pythonOlder "3.7";
22
23 src = fetchFromGitHub {
24 owner = "greenbone";
25 repo = pname;
26 rev = "refs/tags/v${version}";
27 hash = "sha256-8enSKOVEkYPI/2d2nzDkf1GO15kpMI6xDktroK9Ti2s=";
28 };
29
30 nativeBuildInputs = [
31 poetry-core
32 ];
33
34 propagatedBuildInputs = [
35 colorful
36 httpx
37 packaging
38 rich
39 typing-extensions
40 tomlkit
41 ] ++ lib.optionals (pythonOlder "3.8") [
42 typing-extensions
43 ] ++ httpx.optional-dependencies.http2;
44
45 checkInputs = [
46 git
47 pytestCheckHook
48 ];
49
50 disabledTests = [
51 "PrepareTestCase"
52 # Signing fails
53 "test_find_no_signing_key"
54 "test_find_signing_key"
55 "test_find_unreleased_information"
56 # CLI test fails
57 "test_missing_cmd"
58 "test_update_file_changed"
59 # Network access
60 "test_fail_sign_on_upload_fail"
61 "test_successfully_sign"
62 ];
63
64 pythonImportsCheck = [
65 "pontos"
66 ];
67
68 meta = with lib; {
69 description = "Collection of Python utilities, tools, classes and functions";
70 homepage = "https://github.com/greenbone/pontos";
71 changelog = "https://github.com/greenbone/pontos/releases/tag/v${version}";
72 license = with licenses; [ gpl3Plus ];
73 maintainers = with maintainers; [ fab ];
74 };
75}