Skip to content

Commit 1981cb2

Browse files
committed
Add has_package_data to CodebaseResourceQuerySet #447
* Remove dependency field from CodebaseResourceSerializer output * Update dependency donut chart labels * Revert Package URL hover to package_uid value in package_list view Signed-off-by: Jono Yang <[email protected]>
1 parent ac82864 commit 1981cb2

File tree

5 files changed

+19
-39
lines changed

5 files changed

+19
-39
lines changed

scanpipe/api/serializers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ class Meta:
231231
"filename",
232232
"last_modified_date",
233233
"codebase_resources",
234+
"dependencies",
234235
]
235236

236237

scanpipe/models.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,6 +1265,9 @@ def has_licenses(self):
12651265
def has_no_licenses(self):
12661266
return self.filter(licenses=[])
12671267

1268+
def has_package_data(self):
1269+
return self.filter(package_data__isnull=False)
1270+
12681271
def licenses_categories(self, categories):
12691272
return self.json_list_contains(
12701273
field_name="licenses",

scanpipe/pipes/scancode.py

Lines changed: 11 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -352,52 +352,32 @@ def assemble_packages(project):
352352
Create instances of DiscoveredPackage and DiscoveredDependency for `project`
353353
from the parsed package data present in the CodebaseResources of `project`.
354354
"""
355+
logger.info(f"Project: {project}:\n" "Function: assemble_packages\n")
355356
seen_resource_paths = set()
356-
package_data_resources_qs = project.codebaseresources.filter(
357-
package_data__isnull=False
358-
)
359-
for resource in package_data_resources_qs:
357+
for resource in project.codebaseresources.has_package_data():
360358
if resource.path in seen_resource_paths:
361359
continue
362360

363-
logger.info(
364-
f"project: {project}:\n"
365-
"function: assemble_packages\n"
366-
f"Processing: CodebaseResource {resource.path}\n"
367-
)
361+
logger.info(f"Processing: CodebaseResource {resource.path}\n")
368362

369-
for package_data in resource.package_data:
370-
package_data = packagedcode_models.PackageData.from_dict(
371-
mapping=package_data
372-
)
363+
for package_mapping in resource.package_data:
364+
pd = packagedcode_models.PackageData.from_dict(mapping=package_mapping)
373365

374-
logger.info(
375-
f"project: {project}:\n"
376-
"function: assemble_packages\n"
377-
f"Processing: PackageData {package_data.purl}\n"
378-
)
366+
logger.info(f"Processing: PackageData {pd.purl}\n")
379367

380-
handler = get_package_handler(package_data)
368+
handler = get_package_handler(pd)
381369

382-
logger.info(
383-
f"project: {project}:\n"
384-
"function: assemble_packages\n"
385-
f"Selected: Package handler {handler}\n"
386-
)
370+
logger.info(f"Selected: Package handler {handler}\n")
387371

388372
items = handler.assemble(
389-
package_data=package_data,
373+
package_data=pd,
390374
resource=resource,
391375
codebase=project,
392376
package_adder=add_to_package,
393377
)
394378

395379
for item in items:
396-
logger.info(
397-
f"project: {project}:\n"
398-
"function: assemble_packages\n"
399-
f"Processing: item {item}\n"
400-
)
380+
logger.info(f"Processing: item {item}\n")
401381
if isinstance(item, packagedcode_models.Package):
402382
package_data = item.to_dict()
403383
pipes.update_or_create_package(project, package_data)
@@ -407,11 +387,7 @@ def assemble_packages(project):
407387
elif isinstance(item, CodebaseResource):
408388
seen_resource_paths.add(item.path)
409389
else:
410-
logger.info(
411-
f"project: {project}:\n"
412-
"function: assemble_packages\n"
413-
f"Unknown Package assembly item type: {item!r}\n"
414-
)
390+
logger.info(f"Unknown Package assembly item type: {item!r}\n")
415391

416392

417393
def run_scancode(location, output_file, options, raise_on_error=False):

scanpipe/templates/scanpipe/package_list.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
<tbody>
2828
{% for package in object_list %}
2929
<tr class="break-word">
30-
<td style="min-width: 500px;" title="{{ package.package_url }}">
30+
<td style="min-width: 500px;" title="{{ package.package_uid }}">
3131
<a href="{{ package.get_absolute_url }}">{{ package.package_url }}</a>
3232
</td>
3333
<td style="min-width: 300px; max-width: 400px;">

scanpipe/templates/scanpipe/project_detail.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -272,9 +272,9 @@ <h3 class="title is-4 has-text-centered mb-3">
272272
makeChart("package_types", "#package_type_chart", "Package\nType");
273273
makeChart("package_licenses", "#package_license_chart", "Package\nLicense\nExpression");
274274
// Dependencies
275-
makeChart("dependency_is_runtime", "#dependency_is_runtime_chart", "Dependency\nis_runtime");
276-
makeChart("dependency_is_optional", "#dependency_is_optional_chart", "Dependency\nis_optional");
277-
makeChart("dependency_is_resolved", "#dependency_is_resolved_chart", "Dependency\nis_resolved");
275+
makeChart("dependency_is_runtime", "#dependency_is_runtime_chart", "Runtime\nDependencies");
276+
makeChart("dependency_is_optional", "#dependency_is_optional_chart", "Optional\nDependencies");
277+
makeChart("dependency_is_resolved", "#dependency_is_resolved_chart", "Resolved\nDependencies");
278278
// Resources
279279
makeChart("programming_languages", "#programming_language_chart", "Programming\nLanguage");
280280
makeChart("mime_types", "#mime_type_chart", "Mime\nType");

0 commit comments

Comments
 (0)