1{
2 lib,
3 beautifulsoup4,
4 buildPythonPackage,
5 click,
6 colorama,
7 fetchFromGitHub,
8 html2text,
9 lxml,
10 markdown,
11 pandas,
12 pytestCheckHook,
13 python-dateutil,
14 pytz,
15 requests,
16 setuptools,
17 simplejson,
18 tabulate,
19 tldextract,
20}:
21
22buildPythonPackage rec {
23 pname = "faraday-plugins";
24 version = "1.25.0";
25 pyproject = true;
26
27 src = fetchFromGitHub {
28 owner = "infobyte";
29 repo = "faraday_plugins";
30 tag = version;
31 hash = "sha256-VkpwTHPpM1cS5HT5zE3gB25zWOTIVaZdPKNgQFJHO/Q=";
32 };
33
34 postPatch = ''
35 substituteInPlace setup.py \
36 --replace-fail "version=version," "version='${version}',"
37 '';
38
39 build-system = [ setuptools ];
40
41 dependencies = [
42 beautifulsoup4
43 click
44 colorama
45 html2text
46 lxml
47 markdown
48 pandas
49 python-dateutil
50 pytz
51 requests
52 simplejson
53 tabulate
54 tldextract
55 ];
56
57 nativeCheckInputs = [ pytestCheckHook ];
58
59 disabledTestPaths = [
60 # faraday itself is currently not available
61 "tests/test_report_collection.py"
62 ];
63
64 disabledTests = [
65 # Fail because of missing faraday
66 "test_detect_report"
67 "test_process_report_summary"
68 # JSON parsing issue
69 "test_process_report_ignore_info"
70 "test_process_report_tags"
71 ];
72
73 pythonImportsCheck = [ "faraday_plugins" ];
74
75 meta = with lib; {
76 description = "Security tools report parsers for Faraday";
77 homepage = "https://github.com/infobyte/faraday_plugins";
78 changelog = "https://github.com/infobyte/faraday_plugins/releases/tag/${src.tag}";
79 license = licenses.gpl3Only;
80 maintainers = with maintainers; [ fab ];
81 mainProgram = "faraday-plugins";
82 };
83}