1{
2 lib,
3 buildPythonPackage,
4 defusedxml,
5 fastjsonschema,
6 fetchFromGitHub,
7 jsonschema,
8 pytestCheckHook,
9 pyyaml,
10 semantic-version,
11 setuptools,
12 xmlschema,
13}:
14
15buildPythonPackage rec {
16 pname = "lib4sbom";
17 version = "0.8.8";
18 pyproject = true;
19
20 src = fetchFromGitHub {
21 owner = "anthonyharrison";
22 repo = "lib4sbom";
23 tag = "v${version}";
24 hash = "sha256-JfY47bskOnQeh5ueQfBtQz8Hmi9mPjCMoaFrzpxQMhU=";
25 };
26
27 build-system = [ setuptools ];
28
29 dependencies = [
30 defusedxml
31 fastjsonschema
32 jsonschema
33 pyyaml
34 semantic-version
35 xmlschema
36 ];
37
38 nativeCheckInputs = [ pytestCheckHook ];
39
40 disabledTests = [
41 # stub tests that always fail
42 "TestCycloneDXGenerator"
43 "TestCcycloneDX_parser"
44 "TestGenerator"
45 "TestOutput"
46 "TestParser"
47 "TestSPDX_Generator"
48 "TestSPDX_Parser"
49 # tests with missing getters
50 "test_set_downloadlocation"
51 "test_set_homepage"
52 "test_set_checksum"
53 "test_set_externalreference"
54 # checks for invalid return type
55 "test_set_type"
56 # wrong capilatization
57 "test_set_supplier"
58 "test_set_originator"
59 ];
60
61 pythonImportsCheck = [ "lib4sbom" ];
62
63 meta = with lib; {
64 description = "Library to ingest and generate SBOMs";
65 homepage = "https://github.com/anthonyharrison/lib4sbom";
66 changelog = "https://github.com/anthonyharrison/lib4sbom/releases/tag/${src.tag}";
67 license = licenses.asl20;
68 maintainers = with maintainers; [ teatwig ];
69 };
70}