Skip to content

Commit ed8e2ed

Browse files
committed
add docstrings
Signed-off-by: Keshav Priyadarshi <git@keshav.space>
1 parent 3e37835 commit ed8e2ed

2 files changed

Lines changed: 26 additions & 12 deletions

File tree

scanpipe/cyclonedx/__init__.py

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import pathlib
2525
from typing import List
2626

27+
import jsonschema
2728
from hoppr_cyclonedx_models.cyclonedx_1_4 import Component
2829
from hoppr_cyclonedx_models.cyclonedx_1_4 import (
2930
CyclonedxSoftwareBillOfMaterialsStandard as Bom_1_4,
@@ -42,6 +43,9 @@
4243

4344

4445
def get_bom(cyclonedx_document: dict):
46+
"""
47+
Return CycloneDx BOM object
48+
"""
4549
return Bom_1_4(**cyclonedx_document)
4650

4751

@@ -50,6 +54,9 @@ def get_components(bom: Bom_1_4):
5054

5155

5256
def bom_iterable_to_dict(iterable):
57+
"""
58+
Return list dict from a list of CycloneDx item obj
59+
"""
5360
return [
5461
json.loads(obj.json(exclude_unset=True, by_alias=True))
5562
for obj in iterable or []
@@ -59,6 +66,9 @@ def bom_iterable_to_dict(iterable):
5966
def recursive_component_collector(
6067
root_component_list: List[Component], collected: List = []
6168
):
69+
"""
70+
Return list of components including the nested components
71+
"""
6272
for component in root_component_list or []:
6373
extra_data = (
6474
bom_iterable_to_dict(component.components)
@@ -71,6 +81,9 @@ def recursive_component_collector(
7181

7282

7383
def resolve_license(item):
84+
"""
85+
Return license expression/id/name from license item
86+
"""
7487
return (
7588
item["expression"]
7689
if "expression" in item
@@ -83,6 +96,9 @@ def resolve_license(item):
8396

8497

8598
def get_declared_licenses(list_of_license_obj):
99+
"""
100+
Return resolved license from list of LicenseChoice obj
101+
"""
86102
return "\n".join(
87103
[
88104
resolve_license(item)
@@ -92,6 +108,9 @@ def get_declared_licenses(list_of_license_obj):
92108

93109

94110
def get_checksums(component: Component):
111+
"""
112+
Return dict of all the checksums from a component
113+
"""
95114
algorithm_map_cdx_scio = {
96115
"MD5": "md5",
97116
"SHA-1": "sha1",
@@ -106,6 +125,9 @@ def get_checksums(component: Component):
106125

107126

108127
def get_external_refrences(external_references):
128+
"""
129+
Return dict of refrence urls from list of `externalRefrences` obj
130+
"""
109131
refrences = {
110132
"vcs": [],
111133
"issue-tracker": [],
@@ -135,15 +157,6 @@ def validate_document(document, schema=CYCLONEDX_JSON_SCHEMA_PATH):
135157
CYCLONEDX document validation.
136158
Requires the `jsonschema` library.
137159
"""
138-
try:
139-
import jsonschema
140-
except ModuleNotFoundError:
141-
print(
142-
"The `jsonschema` library is required to run the validation.\n"
143-
"Install with: `pip install jsonschema`"
144-
)
145-
raise
146-
147160
if isinstance(document, str):
148161
document = json.loads(document)
149162

scanpipe/pipes/resolve.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,9 @@ def resolve_spdx_packages(input_location):
127127

128128

129129
def cyclonedx_component_to_discovered_package_data(component_data):
130+
"""
131+
Return package_data from CycloneDx component
132+
"""
130133
extra_data = {}
131134
component = component_data["cdx_package"]
132135

@@ -169,9 +172,7 @@ def cyclonedx_component_to_discovered_package_data(component_data):
169172
**checksum_data,
170173
}
171174

172-
return {
173-
key: value for key, value in package_data.items() if value not in [None, ""]
174-
}
175+
return {key: value for key, value in package_data.items() if value}
175176

176177

177178
def resolve_cyclonedx_packages(input_location):

0 commit comments

Comments
 (0)