Skip to content

Commit 8ee4406

Browse files
committed
Rename and streamline get_rule_object_from_match
Signed-off-by: Philippe Ombredanne <pombredanne@nexb.com>
1 parent 83a0db7 commit 8ee4406

File tree

3 files changed

+26
-27
lines changed

3 files changed

+26
-27
lines changed

src/licensedcode/detection.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
from licensedcode.models import UnDetectedRule
3030
from licensedcode.models import BasicRule
3131
from licensedcode.models import compute_relevance
32-
from licensedcode.models import get_rule_object_from_match
32+
from licensedcode.models import get_license_rule_from_match
3333
from licensedcode.spans import Span
3434
from licensedcode.tokenize import query_tokenizer
3535
from licensedcode.query import Query
@@ -627,7 +627,7 @@ def matches_from_license_match_mappings(license_match_mappings):
627627
license_matches = []
628628

629629
for license_match_mapping in license_match_mappings:
630-
rule = get_rule_object_from_match(license_match_mapping)
630+
rule = get_license_rule_from_match(license_match_mapping)
631631
license_rule_reference = rule.get_reference_data()
632632
license_matches.append(
633633
LicenseMatchFromResult.from_license_match_mapping(

src/licensedcode/licenses_reference.py

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import logging
1212
from license_expression import Licensing
1313

14-
from licensedcode.models import get_rule_object_from_match
14+
from licensedcode.models import get_license_rule_from_match
1515

1616

1717
TRACE_REFERENCE = os.environ.get('SCANCODE_DEBUG_LICENSE_REFERENCE', False)
@@ -281,22 +281,19 @@ def get_reference_data(match):
281281
Get reference data from a LicenseMatch mapping `match` after rehydrating.
282282
"""
283283

284-
rule = get_rule_object_from_match(license_match=match)
284+
rule = get_license_rule_from_match(license_match=match)
285285

286286
ref_data = {}
287287
ref_data['rule_identifier'] = match['rule_identifier']
288288
ref_data['license_expression'] = match['license_expression']
289289
ref_data['rule_url'] = rule.rule_url
290-
ref_data['rule_relevance'] = match.pop('rule_relevance')
291-
ref_data['rule_length'] = match.pop('rule_length')
292-
ref_data['is_license_text'] = match.pop('is_license_text')
293-
ref_data['is_license_notice'] = match.pop('is_license_notice')
294-
ref_data['is_license_reference'] = match.pop('is_license_reference')
295-
ref_data['is_license_tag'] = match.pop('is_license_tag')
296-
ref_data['is_license_intro'] = match.pop('is_license_intro')
297-
ref_data['referenced_filenames'] = match.pop('referenced_filenames')
290+
ref_data['rule_relevance'] = match.get('rule_relevance')
291+
ref_data['rule_length'] = match.get('rule_length')
292+
ref_data['is_license_text'] = match.get('is_license_text')
293+
ref_data['is_license_notice'] = match.get('is_license_notice')
294+
ref_data['is_license_reference'] = match.get('is_license_reference')
295+
ref_data['is_license_tag'] = match.get('is_license_tag')
296+
ref_data['is_license_intro'] = match.get('is_license_intro')
297+
ref_data['referenced_filenames'] = match.get('referenced_filenames')
298298
ref_data['rule_text'] = rule.text
299-
300-
_ = match.pop('licenses')
301-
302299
return ref_data

src/licensedcode/models.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2179,7 +2179,7 @@ def set_relevance(self):
21792179
self.relevance = computed_relevance
21802180

21812181

2182-
def get_rule_object_from_match(license_match):
2182+
def get_license_rule_from_match(license_match):
21832183
"""
21842184
Return a rehydrated Rule object from a `license_match`
21852185
LicenseMatch mapping.
@@ -2190,18 +2190,20 @@ def get_rule_object_from_match(license_match):
21902190
"license-detection-unknown": UnknownRule,
21912191
"package-manifest": UnDetectedRule,
21922192
}
2193-
2193+
2194+
prefixes = tuple(rule_subclass_by_identifier_prefix.keys())
21942195
rule_identifier = license_match["rule_identifier"]
2195-
for prefix, cls in rule_subclass_by_identifier_prefix.items():
2196-
if rule_identifier.startswith(prefix):
2197-
return cls(
2198-
license_expression=license_match["license_expression"],
2199-
text=license_match.get("matched_text", None),
2200-
length=license_match["matched_length"],
2201-
)
2202-
2203-
from licensedcode.cache import get_index
2204-
return get_index().rules_by_id[rule_identifier]
2196+
if rule_identifier.startswith(prefixes):
2197+
for prefix, cls in rule_subclass_by_identifier_prefix.items():
2198+
if rule_identifier.startswith(prefix):
2199+
return cls(
2200+
license_expression=license_match["license_expression"],
2201+
text=license_match.get("matched_text", None),
2202+
length=license_match["matched_length"],
2203+
)
2204+
else:
2205+
from licensedcode.cache import get_index
2206+
return get_index().rules_by_id[rule_identifier]
22052207

22062208

22072209
def compute_relevance(length):

0 commit comments

Comments
 (0)