Skip to content

Commit d449c3a

Browse files
committed
Merge inishchith:fix_summary_by_facet_for_packages branch
This is for PR #1864 and #1759 Signed-off-by: Philippe Ombredanne <[email protected]>
2 parents 3bb2465 + 6d1f50a commit d449c3a

File tree

3 files changed

+27
-9
lines changed

3 files changed

+27
-9
lines changed

src/summarycode/summarizer.py

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
from summarycode.utils import get_resource_summary
2020
from summarycode.utils import set_resource_summary
2121

22-
2322
# Tracing flags
2423
TRACE = False
2524
TRACE_LIGHT = False
@@ -279,6 +278,7 @@ def summarize_values(values, attribute):
279278
holders=summarize_holders,
280279
authors=summarize_holders,
281280
programming_language=summarize_languages,
281+
packages=summarize_packages,
282282
)
283283
return value_summarizers_by_attr[attribute](values)
284284

@@ -328,7 +328,7 @@ def summarize_codebase_key_files(codebase, **kwargs):
328328
'authors',
329329
'programming_language',
330330
# 'packages',
331-
])
331+
])
332332
summarizable_attributes = [k for k in summarizable_attributes
333333
if k in really_summarizable_attributes]
334334

@@ -480,11 +480,28 @@ def package_summarizer(resource, children, keep_details=False):
480480
logger_debug('package_summarizer: for:', resource,
481481
'packages are:', packs)
482482

483-
# Collect direct children packages summary
484-
for child in children:
485-
child_summaries = get_resource_summary(child, key='packages', as_attribute=False) or []
486-
packages.extend(child_summaries)
483+
package_urls = []
484+
for package in packages:
485+
purl = package.get('purl')
486+
if purl:
487+
package_urls.append(purl)
487488

488489
# summarize proper
489-
set_resource_summary(resource, key='packages', value=packages, as_attribute=False)
490-
return packages
490+
packages_counter = summarize_packages(package_urls)
491+
summarized = sorted_counter(packages_counter)
492+
set_resource_summary(
493+
resource=resource,
494+
key='packages',
495+
value=summarized,
496+
as_attribute=keep_details,
497+
)
498+
499+
return summarized
500+
501+
502+
def summarize_packages(package_urls):
503+
"""
504+
Given a list of package urls, return a mapping of {expression: count
505+
of occurences}
506+
"""
507+
return Counter(package_urls)

tests/summarycode/data/full_summary/summary_by_facet.expected.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"options": {
66
"input": "<path>",
77
"--copyright": true,
8+
"--email": true,
89
"--facet": [
910
"dev=*.java",
1011
"dev=*.cs",

tests/summarycode/test_summarizer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def test_full_summary_by_facet(self):
9999
result_file = self.get_temp_file('json')
100100
expected_file = self.get_test_loc('full_summary/summary_by_facet.expected.json')
101101
run_scan_click([
102-
'-cli',
102+
'-clpieu',
103103
'--facet', 'dev=*.java',
104104
'--facet', 'dev=*.cs',
105105
'--facet', 'dev=*ada*',

0 commit comments

Comments
 (0)