From 711f0c4ce7c0edf43c66c7d8577cece43ccbcc98 Mon Sep 17 00:00:00 2001 From: Wonjae Park Date: Mon, 15 Jul 2024 10:57:27 +0900 Subject: [PATCH] Fix SPDX expression split bug Signed-off-by: Wonjae Park --- src/fosslight_source/_parsing_scancode_file_item.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/fosslight_source/_parsing_scancode_file_item.py b/src/fosslight_source/_parsing_scancode_file_item.py index 930bf0c..23149c8 100755 --- a/src/fosslight_source/_parsing_scancode_file_item.py +++ b/src/fosslight_source/_parsing_scancode_file_item.py @@ -26,8 +26,8 @@ KEYWORD_DOWNLOAD_LOC = r'DownloadLocation\s*[\S]+' KEYWORD_SCANCODE_UNKNOWN = "unknown-spdx" SPDX_REPLACE_WORDS = ["(", ")"] -KEY_AND = "and" -KEY_OR = "or" +KEY_AND = r"(?<=\s)and(?=\s)" +KEY_OR = r"(?<=\s)or(?=\s)" def get_error_from_header(header_item): @@ -182,8 +182,7 @@ def split_spdx_expression(spdx_string): license = [] for replace in SPDX_REPLACE_WORDS: spdx_string = spdx_string.replace(replace, "") - spdx_string = spdx_string.replace(KEY_OR, KEY_AND) - license = spdx_string.split(KEY_AND) + license = re.split(KEY_AND + "|" + KEY_OR, spdx_string) return license