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

Method process_codebase

src/summarycode/summarizer.py:81–136  ·  view source on GitHub ↗
(self, codebase, summary, **kwargs)

Source from the content-addressed store, hash-verified

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:
113 # If we did not get a declared license expression from detected
114 # package data, then we use the results from `compute_license_score`
115 scoring_elements, declared_license_expression = compute_license_score(codebase)
116 other_license_expressions = remove_from_tallies(
117 declared_license_expression, license_expressions_tallies
118 )
119
120 if not declared_holders:
121 declared_holders = get_declared_holders(codebase, holders_tallies)
122 other_holders = remove_from_tallies(declared_holders, holders_tallies)
123 declared_holder = ', '.join(declared_holders)
124
125 if not primary_language:
126 primary_language = get_primary_language(programming_language_tallies)
127 other_languages = remove_from_tallies(primary_language, programming_language_tallies)
128
129 # Save summary info to codebase
130 codebase.attributes.summary['declared_license_expression'] = declared_license_expression
131 codebase.attributes.summary['license_clarity_score'] = scoring_elements.to_dict()
132 codebase.attributes.summary['declared_holder'] = declared_holder
133 codebase.attributes.summary['primary_language'] = primary_language
134 codebase.attributes.summary['other_license_expressions'] = other_license_expressions
135 codebase.attributes.summary['other_holders'] = other_holders
136 codebase.attributes.summary['other_languages'] = other_languages
137
138

Callers

nothing calls this directly

Calls 10

compute_codebase_talliesFunction · 0.90
compute_license_scoreFunction · 0.90
remove_from_talliesFunction · 0.85
get_declared_holdersFunction · 0.85
get_primary_languageFunction · 0.85
logger_debugFunction · 0.70
getMethod · 0.65
joinMethod · 0.45
to_dictMethod · 0.45

Tested by

no test coverage detected