@@ -105,8 +105,12 @@ def process_codebase(self, codebase, licenses_reference, **kwargs):
105
105
)
106
106
107
107
license_detections = getattr (resource , 'license_detections' , []) or []
108
+ license_clues = getattr (resource , 'license_clues' , []) or []
108
109
rules_data .extend (
109
- get_license_rules_reference_data (license_detections = license_detections )
110
+ get_license_rules_reference_data (
111
+ license_detections = license_detections ,
112
+ license_clues = license_clues ,
113
+ )
110
114
)
111
115
112
116
codebase .save_resource (resource )
@@ -157,7 +161,7 @@ def get_unique_rule_references(rules_data):
157
161
return rules_references
158
162
159
163
160
- def get_license_rules_reference_data (license_detections ):
164
+ def get_license_rules_reference_data (license_detections , license_clues = None ):
161
165
"""
162
166
Get Rule data for references from a list of LicenseDetections.
163
167
@@ -168,30 +172,27 @@ def get_license_rules_reference_data(license_detections):
168
172
rule_identifiers = set ()
169
173
rules_reference_data = []
170
174
171
- for detection in license_detections :
172
- if not detection :
173
- continue
175
+ if license_detections :
174
176
175
- for match in detection ['matches' ]:
177
+ for detection in license_detections :
178
+ if not detection :
179
+ continue
176
180
177
- rule_identifier = match [ 'rule_identifier' ]
181
+ for match in detection [ 'matches' ]:
178
182
179
- ref_data = {}
180
- ref_data ['license_expression' ] = match ['license_expression' ]
181
- ref_data ['rule_identifier' ] = rule_identifier
182
- ref_data ['referenced_filenames' ] = match .pop ('referenced_filenames' )
183
- ref_data ['is_license_text' ] = match .pop ('is_license_text' )
184
- ref_data ['is_license_notice' ] = match .pop ('is_license_notice' )
185
- ref_data ['is_license_reference' ] = match .pop ('is_license_reference' )
186
- ref_data ['is_license_tag' ] = match .pop ('is_license_tag' )
187
- ref_data ['is_license_intro' ] = match .pop ('is_license_intro' )
188
- ref_data ['rule_length' ] = match .pop ('rule_length' )
189
- ref_data ['rule_relevance' ] = match .pop ('rule_relevance' )
183
+ rule_identifier = match ['rule_identifier' ]
184
+ ref_data = get_reference_data (match )
190
185
191
- if 'matched_text' in match :
192
- ref_data ['matched_text' ] = match .pop ('matched_text' )
186
+ if rule_identifier not in rule_identifiers :
187
+ rule_identifiers .update (rule_identifier )
188
+ rules_reference_data .append (ref_data )
189
+
190
+ if license_clues :
193
191
194
- _ = match .pop ('licenses' )
192
+ for match in license_clues :
193
+
194
+ rule_identifier = match ['rule_identifier' ]
195
+ ref_data = get_reference_data (match )
195
196
196
197
if rule_identifier not in rule_identifiers :
197
198
rule_identifiers .update (rule_identifier )
@@ -200,6 +201,28 @@ def get_license_rules_reference_data(license_detections):
200
201
return rules_reference_data
201
202
202
203
204
+ def get_reference_data (match ):
205
+
206
+ ref_data = {}
207
+ ref_data ['license_expression' ] = match ['license_expression' ]
208
+ ref_data ['rule_identifier' ] = match ['rule_identifier' ]
209
+ ref_data ['referenced_filenames' ] = match .pop ('referenced_filenames' )
210
+ ref_data ['is_license_text' ] = match .pop ('is_license_text' )
211
+ ref_data ['is_license_notice' ] = match .pop ('is_license_notice' )
212
+ ref_data ['is_license_reference' ] = match .pop ('is_license_reference' )
213
+ ref_data ['is_license_tag' ] = match .pop ('is_license_tag' )
214
+ ref_data ['is_license_intro' ] = match .pop ('is_license_intro' )
215
+ ref_data ['rule_length' ] = match .pop ('rule_length' )
216
+ ref_data ['rule_relevance' ] = match .pop ('rule_relevance' )
217
+
218
+ if 'matched_text' in match :
219
+ ref_data ['matched_text' ] = match .pop ('matched_text' )
220
+
221
+ _ = match .pop ('licenses' )
222
+
223
+ return ref_data
224
+
225
+
203
226
def get_license_detection_references (license_detections_by_path ):
204
227
"""
205
228
Get LicenseDetection data for references from a mapping of path:[LicenseDetection],
0 commit comments