1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 defusedxml,
6 fetchFromGitHub,
7 lxml,
8 paramiko,
9 poetry-core,
10 pontos,
11 pytestCheckHook,
12 pythonOlder,
13 typing-extensions,
14}:
15
16buildPythonPackage rec {
17 pname = "python-gvm";
18 version = "26.6.0";
19 pyproject = true;
20
21 disabled = pythonOlder "3.9";
22
23 src = fetchFromGitHub {
24 owner = "greenbone";
25 repo = "python-gvm";
26 tag = "v${version}";
27 hash = "sha256-n/FYPCJ0Fw2WBLA6dAYUzgwDlol1DRgbCywsvMARTWE=";
28 };
29
30 build-system = [ poetry-core ];
31
32 pythonRelaxDeps = [ "defusedxml" ];
33
34 dependencies = [
35 defusedxml
36 lxml
37 paramiko
38 typing-extensions
39 ];
40
41 nativeCheckInputs = [
42 pontos
43 pytestCheckHook
44 ];
45
46 disabledTests = [
47 # No running SSH available
48 "test_connect_error"
49 "test_feed_xml_error"
50 ]
51 ++ lib.optionals stdenv.hostPlatform.isDarwin [ "test_feed_xml_error" ];
52
53 pythonImportsCheck = [ "gvm" ];
54
55 meta = with lib; {
56 description = "Collection of APIs that help with remote controlling a Greenbone Security Manager";
57 homepage = "https://github.com/greenbone/python-gvm";
58 changelog = "https://github.com/greenbone/python-gvm/releases/tag/${src.tag}";
59 license = with licenses; [ gpl3Plus ];
60 maintainers = with maintainers; [ fab ];
61 };
62}