1{
2 lib,
3 buildPythonPackage,
4 colorful,
5 fetchFromGitHub,
6 git,
7 httpx,
8 lxml,
9 packaging,
10 poetry-core,
11 pytestCheckHook,
12 python-dateutil,
13 pythonOlder,
14 semver,
15 shtab,
16 rich,
17 tomlkit,
18}:
19
20buildPythonPackage rec {
21 pname = "pontos";
22 version = "25.8.1";
23 pyproject = true;
24
25 disabled = pythonOlder "3.9";
26
27 src = fetchFromGitHub {
28 owner = "greenbone";
29 repo = "pontos";
30 tag = "v${version}";
31 hash = "sha256-uQe21Yp1PYeU/NgbQMbC2yBqEA1yUUaCiKc7k/oeS7g=";
32 };
33
34 build-system = [ poetry-core ];
35
36 dependencies = [
37 colorful
38 httpx
39 lxml
40 packaging
41 python-dateutil
42 semver
43 shtab
44 rich
45 tomlkit
46 ]
47 ++ httpx.optional-dependencies.http2;
48
49 nativeCheckInputs = [
50 git
51 pytestCheckHook
52 ];
53
54 disabledTests = [
55 "PrepareTestCase"
56 # Signing fails
57 "test_find_no_signing_key"
58 "test_find_signing_key"
59 "test_find_unreleased_information"
60 # CLI test fails
61 "test_missing_cmd"
62 "test_update_file_changed"
63 # Network access
64 "test_fail_sign_on_upload_fail"
65 "test_successfully_sign"
66 # calls git log, but our fetcher removes .git
67 "test_git_error"
68 # Tests require git executable
69 "test_github_action_output"
70 "test_initial_release"
71 # Tests are out-dated
72 "test_getting_version_without_version_config"
73 "test_verify_version_does_not_match"
74 ];
75
76 pythonImportsCheck = [ "pontos" ];
77
78 meta = with lib; {
79 description = "Collection of Python utilities, tools, classes and functions";
80 homepage = "https://github.com/greenbone/pontos";
81 changelog = "https://github.com/greenbone/pontos/releases/tag/${src.tag}";
82 license = with licenses; [ gpl3Plus ];
83 maintainers = with maintainers; [ fab ];
84 };
85}