Skip to content

Commit 3d1dbd7

Browse files
committed
Fix summary by facet for packages by adding summarize_packages method
Signed-off-by: inishchith <[email protected]>
1 parent ff2c839 commit 3d1dbd7

File tree

1 file changed

+23
-4
lines changed

1 file changed

+23
-4
lines changed

src/summarycode/summarizer.py

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,7 @@ def summarize_values(values, attribute):
301301
holders=summarize_holders,
302302
authors=summarize_holders,
303303
programming_language=summarize_languages,
304+
packages=summarize_packages,
304305
)
305306
return value_summarizers_by_attr[attribute](values)
306307

@@ -502,11 +503,29 @@ def package_summarizer(resource, children, keep_details=False):
502503
logger_debug('package_summarizer: for:', resource,
503504
'packages are:', packs)
504505

506+
package_purls = []
507+
for package in packages:
508+
if package.get("purl", False):
509+
package_purls.append(package["purl"])
510+
505511
# Collect direct children packages summary
506512
for child in children:
507513
child_summaries = get_resource_summary(child, key='packages', as_attribute=False) or []
508-
packages.extend(child_summaries)
509-
514+
for child_summary in child_summaries:
515+
values = [child_summary['value']] * child_summary['count']
516+
package_purls.extend(values)
517+
510518
# summarize proper
511-
set_resource_summary(resource, key='packages', value=packages, as_attribute=False)
512-
return packages
519+
packages_counter = summarize_licenses(package_purls)
520+
summarized = sorted_counter(packages_counter)
521+
set_resource_summary(resource, key="packages", value=summarized, as_attribute=keep_details)
522+
523+
return summarized
524+
525+
526+
def summarize_packages(package_purls):
527+
"""
528+
Given a list of package purls, return a mapping of {expression: count
529+
of occurences}
530+
"""
531+
return Counter(package_purls)

0 commit comments

Comments
 (0)