MCPcopy Create free account
hub / github.com/aboutcode-org/scancode-toolkit / ScanSummary

Class ScanSummary

src/summarycode/summarizer.py:55–136  ·  view source on GitHub ↗

Summarize a scan at the codebase level.

Source from the content-addressed store, hash-verified

53
54@post_scan_impl
55class ScanSummary(PostScanPlugin):
56 """
57 Summarize a scan at the codebase level.
58 """
59
60 run_order = 6
61 sort_order = 2
62
63 codebase_attributes = dict(summary=attr.ib(default=attr.Factory(dict)))
64
65 options = [
66 PluggableCommandLineOption(
67 ('--summary',),
68 is_flag=True,
69 default=False,
70 help='Summarize scans by providing declared origin '
71 'information and other detected origin info at the '
72 'codebase attribute level.',
73 help_group=POST_SCAN_GROUP,
74 required_options=['classify'],
75 )
76 ]
77
78 def is_enabled(self, summary, **kwargs):
79 return summary
80
81 def process_codebase(self, codebase, summary, **kwargs):
82 if TRACE_LIGHT:
83 logger_debug('ScanSummary:process_codebase')
84
85 # Get tallies
86 tallies = compute_codebase_tallies(codebase, keep_details=False, **kwargs)
87 license_expressions_tallies = tallies.get('detected_license_expression') or []
88 holders_tallies = tallies.get('holders') or []
89 programming_language_tallies = tallies.get('programming_language') or []
90
91 # Determine declared license expression, declared holder, and primary
92 # language from Package data at the top level.
93
94 declared_license_expression = None
95 declared_holders = None
96 primary_language = None
97
98 # use top level packages
99 if hasattr(codebase.attributes, 'packages'):
100 top_level_packages = codebase.attributes.packages
101 (
102 declared_license_expression,
103 declared_holders,
104 primary_language,
105 ) = get_origin_info_from_top_level_packages(
106 top_level_packages=top_level_packages,
107 codebase=codebase,
108 )
109
110 if declared_license_expression:
111 scoring_elements, _ = compute_license_score(codebase)
112 else:

Callers

nothing calls this directly

Calls 1

Tested by

no test coverage detected