Skip to content

Commit d935c74

Browse files
committed
Move SPDX license check to spdx_common
Previously `is_spdx_license_expression` method was duplicated in both tag/value and json package_helpers. This change moves it to `spdx_common` for general use Signed-off-by: Ivana Atanasova <[email protected]>
1 parent 184a6d2 commit d935c74

File tree

3 files changed

+11
-21
lines changed

3 files changed

+11
-21
lines changed

tern/formats/spdx/spdx_common.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import re
1414
import uuid
1515

16+
from license_expression import get_spdx_licensing
1617
from tern.utils import constants
1718
from tern.formats.spdx.spdxtagvalue import formats as spdx_formats
1819

@@ -43,6 +44,14 @@ def get_license_ref(license_string):
4344
""" For SPDX tag-value format, return a LicenseRef string """
4445
return 'LicenseRef-' + get_string_id(license_string)
4546

47+
def is_spdx_license_expression(license_data):
48+
'''Return True if the license is a valid SPDX license expression, else
49+
return False'''
50+
licensing = get_spdx_licensing()
51+
if ',' in license_data:
52+
license_data = license_data.replace(',', ' ')
53+
return licensing.validate(license_data).errors == []
54+
4655

4756
########################
4857
# Common Image Helpers #

tern/formats/spdx/spdxjson/package_helpers.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,11 @@
77
Helper functions for packages in SPDX JSON document creation
88
"""
99

10-
from license_expression import get_spdx_licensing
1110
from tern.report import content
1211
from tern.formats.spdx import spdx_common
1312
from tern.formats.spdx.spdxjson import formats as json_formats
1413

1514

16-
def is_spdx_license_expression(license_data):
17-
'''Return True if the license is a valid SPDX license expression, else
18-
return False'''
19-
licensing = get_spdx_licensing()
20-
if ',' in license_data:
21-
license_data = license_data.replace(',', ' ')
22-
return licensing.validate(license_data).errors == []
23-
24-
2515
def get_package_comment(package):
2616
'''Given a package object, return a PackageComment string for a list of
2717
NoticeOrigin objects'''
@@ -35,7 +25,7 @@ def get_package_comment(package):
3525

3626
def get_package_license_declared(package_license_declared):
3727
if package_license_declared:
38-
if is_spdx_license_expression(package_license_declared):
28+
if spdx_common.is_spdx_license_expression(package_license_declared):
3929
return package_license_declared
4030
return spdx_common.get_license_ref(package_license_declared)
4131
return 'NONE'

tern/formats/spdx/spdxtagvalue/package_helpers.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,11 @@
77
Helper functions for packages in SPDX document
88
"""
99

10-
from license_expression import get_spdx_licensing
1110
from tern.formats.spdx.spdxtagvalue import formats as spdx_formats
1211
from tern.formats.spdx import spdx_common
1312
from tern.report import content
1413

1514

16-
def is_spdx_license_expression(license_data):
17-
'''Return True if the license is a valid SPDX license expression, else
18-
return False'''
19-
licensing = get_spdx_licensing()
20-
if ',' in license_data:
21-
license_data = license_data.replace(',', ' ')
22-
return licensing.validate(license_data).errors == []
23-
2415
def get_package_comment(package_obj):
2516
'''Return a PackageComment tag-value text block for a list of
2617
NoticeOrigin objects'''
@@ -35,7 +26,7 @@ def get_package_comment(package_obj):
3526

3627
def get_package_license_declared(package_license_declared):
3728
if package_license_declared:
38-
if is_spdx_license_expression(package_license_declared):
29+
if spdx_common.is_spdx_license_expression(package_license_declared):
3930
return package_license_declared
4031
return spdx_common.get_license_ref(package_license_declared)
4132
return 'NONE'

0 commit comments

Comments
 (0)