From ee24e556030added4223b6a9ae4f4a411af0aa0b Mon Sep 17 00:00:00 2001 From: Soim Kim Date: Wed, 25 Feb 2026 11:47:38 +0900 Subject: [PATCH 1/4] feat: add function to retrieve SPDX from a given license --- .../_parsing_scancode_file_item.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/fosslight_source/_parsing_scancode_file_item.py b/src/fosslight_source/_parsing_scancode_file_item.py index ad911fb..26b6127 100755 --- a/src/fosslight_source/_parsing_scancode_file_item.py +++ b/src/fosslight_source/_parsing_scancode_file_item.py @@ -207,6 +207,19 @@ def split_spdx_expression(spdx_string: str) -> list: return license +def get_license_expression_spdx(license_expression: str) -> str: + if not license_expression or not license_expression.strip(): + return "" + try: + from licensedcode.cache import build_spdx_license_expression + result = str(build_spdx_license_expression(license_expression.strip())) + if result.startswith("LicenseRef-"): + return "" + return result + except Exception: + return "" + + def parsing_scancode_32_later( scancode_file_list: list, has_error: bool = False ) -> Tuple[bool, list, list, dict]: @@ -231,7 +244,6 @@ def parsing_scancode_32_later( result_item.comment = ",".join(error_msg) scancode_file_item.append(result_item) continue - copyright_value_list = [] for x in file.get("copyrights", []): copyright_data = x.get("copyright", "") @@ -242,7 +254,6 @@ def parsing_scancode_32_later( except Exception: pass copyright_value_list.append(copyright_data) - license_detected = [] licenses = file.get("license_detections", []) if not licenses: @@ -266,6 +277,8 @@ def parsing_scancode_32_later( found_lic = str(matched.group()) except Exception: pass + license_expression_spdx = get_license_expression_spdx(found_lic) + found_lic = license_expression_spdx if license_expression_spdx else found_lic for word in replace_word: found_lic = found_lic.replace(word, "") if matched_txt: From 6b4ee6cfa7a995aae5248eae30182d330907b940 Mon Sep 17 00:00:00 2001 From: Soim Kim Date: Thu, 26 Feb 2026 08:38:51 +0900 Subject: [PATCH 2/4] Fix by codderabbit --- src/fosslight_source/_parsing_scancode_file_item.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/fosslight_source/_parsing_scancode_file_item.py b/src/fosslight_source/_parsing_scancode_file_item.py index 26b6127..f7d575d 100755 --- a/src/fosslight_source/_parsing_scancode_file_item.py +++ b/src/fosslight_source/_parsing_scancode_file_item.py @@ -212,9 +212,12 @@ def get_license_expression_spdx(license_expression: str) -> str: return "" try: from licensedcode.cache import build_spdx_license_expression - result = str(build_spdx_license_expression(license_expression.strip())) + result_obj = build_spdx_license_expression(license_expression.strip()) + if not result_obj: + result = "" + result = str(result_obj) if result.startswith("LicenseRef-"): - return "" + result = "" return result except Exception: return "" From 30bb3183ef7377d0dfcb670ff351fd6ec34a004a Mon Sep 17 00:00:00 2001 From: Soim Kim Date: Thu, 26 Feb 2026 09:01:15 +0900 Subject: [PATCH 3/4] fix3 --- src/fosslight_source/_parsing_scancode_file_item.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/fosslight_source/_parsing_scancode_file_item.py b/src/fosslight_source/_parsing_scancode_file_item.py index f7d575d..3a02769 100755 --- a/src/fosslight_source/_parsing_scancode_file_item.py +++ b/src/fosslight_source/_parsing_scancode_file_item.py @@ -212,12 +212,9 @@ def get_license_expression_spdx(license_expression: str) -> str: return "" try: from licensedcode.cache import build_spdx_license_expression - result_obj = build_spdx_license_expression(license_expression.strip()) - if not result_obj: - result = "" - result = str(result_obj) - if result.startswith("LicenseRef-"): - result = "" + result = build_spdx_license_expression(license_expression.strip()) + if regex.match(result): + return "" return result except Exception: return "" From 27424265bfa3d5d42b0698324199f7fea69139d9 Mon Sep 17 00:00:00 2001 From: Soim Kim Date: Thu, 26 Feb 2026 09:12:29 +0900 Subject: [PATCH 4/4] fix --- src/fosslight_source/_parsing_scancode_file_item.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/fosslight_source/_parsing_scancode_file_item.py b/src/fosslight_source/_parsing_scancode_file_item.py index 3a02769..d057585 100755 --- a/src/fosslight_source/_parsing_scancode_file_item.py +++ b/src/fosslight_source/_parsing_scancode_file_item.py @@ -213,6 +213,8 @@ def get_license_expression_spdx(license_expression: str) -> str: try: from licensedcode.cache import build_spdx_license_expression result = build_spdx_license_expression(license_expression.strip()) + if result is None: + return "" if regex.match(result): return "" return result