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

Function group_license_expressions

src/summarycode/score.py:420–458  ·  view source on GitHub ↗

Return a tuple that contains two list of license expressions. The first list in the tuple contains unique license expressions with "AND", "OR, or "WITH" in it. The second list in the tuple contains unique license expressions without "AND", "OR", or "WITH".

(unique_license_expressions)

Source from the content-addressed store, hash-verified

418
419
420def group_license_expressions(unique_license_expressions):
421 """
422 Return a tuple that contains two list of license expressions.
423
424 The first list in the tuple contains unique license expressions with "AND",
425 "OR, or "WITH" in it.
426
427 The second list in the tuple contains unique license
428 expressions without "AND", "OR", or "WITH".
429 """
430 joined_expressions = []
431 single_expressions = []
432 for license_expression in unique_license_expressions:
433 if (
434 'AND' in license_expression
435 or 'OR' in license_expression
436 or 'WITH' in license_expression
437 ):
438 joined_expressions.append(license_expression)
439 else:
440 single_expressions.append(license_expression)
441
442 licensing = Licensing()
443 unique_joined_expressions = []
444 seen_joined_expression = []
445 len_joined_expressions = len(joined_expressions)
446 if len_joined_expressions > 1:
447 for i, j in enumerate(joined_expressions, start=1):
448 if i > len_joined_expressions:
449 break
450 for j1 in joined_expressions[i:]:
451 if licensing.is_equivalent(j, j1):
452 if j not in unique_joined_expressions and j not in seen_joined_expression:
453 unique_joined_expressions.append(j)
454 seen_joined_expression.append(j1)
455 else:
456 unique_joined_expressions = joined_expressions
457
458 return unique_joined_expressions, single_expressions
459
460
461def get_primary_license(declared_license_expressions):

Callers 1

get_primary_licenseFunction · 0.85

Calls 1

appendMethod · 0.45

Tested by

no test coverage detected