|
9 | 9 | import shutil |
10 | 10 | import pandas as pd |
11 | 11 | import yaml |
12 | | -import copy |
13 | 12 | import fosslight_util.constant as constant |
14 | 13 | from fosslight_util.parsing_yaml import parsing_yml |
15 | 14 | from fosslight_util.write_yaml import create_yaml_with_ossitem |
@@ -212,38 +211,26 @@ def correct_scanner_result(_output_dir, output_files, output_extension, exist_sr |
212 | 211 |
|
213 | 212 | if exist_src and exist_bin: |
214 | 213 | try: |
215 | | - dup_bin_list = [] |
216 | | - exclude_list = [] |
217 | | - for src_item in src_oss_list: |
218 | | - dup_bin = '' |
219 | | - for idx, bin_item in enumerate(bin_oss_list): |
220 | | - if (not src_item.source_name_or_path) or src_item.exclude or bin_item.exclude: |
| 214 | + remove_src_idx_list = [] |
| 215 | + for idx_src, src_item in enumerate(src_oss_list): |
| 216 | + dup_flag = False |
| 217 | + for bin_item in bin_oss_list: |
| 218 | + if (not src_item.source_name_or_path): |
221 | 219 | continue |
222 | 220 | if src_item.source_name_or_path[0] == bin_item.source_name_or_path[0]: |
223 | | - dup_bin = copy.deepcopy(bin_item) |
224 | | - if not dup_bin.license: |
225 | | - if dup_bin.exclude: |
226 | | - src_item.exclude = dup_bin.exclude |
227 | | - dup_bin.set_sheet_item(src_item.get_print_array()[0]) |
228 | | - if dup_bin.comment: |
229 | | - dup_bin.comment += '/' |
230 | | - dup_bin.comment += 'Loaded from SRC OSS info' |
231 | | - dup_bin_list.append(dup_bin) |
232 | | - exclude_list.append(idx) |
233 | | - if dup_bin: |
234 | | - src_item.exclude = True |
235 | | - if src_item.comment: |
236 | | - src_item.comment += '/' |
237 | | - src_item.comment += 'Excluded by duplicated binary within BIN' |
238 | | - duplicates = True |
239 | | - |
240 | | - exclude_list = list(set(exclude_list)) |
241 | | - for idx in exclude_list: |
242 | | - bin_oss_list[idx].exclude = True |
243 | | - if bin_oss_list[idx].comment: |
244 | | - bin_oss_list[idx].comment += '/' |
245 | | - bin_oss_list[idx].comment += 'Excluded by SRC OSS info' |
246 | | - bin_oss_list.extend(dup_bin_list) |
| 221 | + dup_flag = True |
| 222 | + if not bin_item.license and src_item.license: |
| 223 | + src_item.exclude = bin_item.exclude |
| 224 | + bin_item.set_sheet_item(src_item.get_print_array(constant.FL_BINARY)[0]) |
| 225 | + if bin_item.comment: |
| 226 | + bin_item.comment += '/' |
| 227 | + bin_item.comment += 'Loaded from SRC OSS info' |
| 228 | + if dup_flag: |
| 229 | + remove_src_idx_list.append(idx_src) |
| 230 | + if remove_src_idx_list: |
| 231 | + duplicates = True |
| 232 | + for i in sorted(remove_src_idx_list, reverse=True): |
| 233 | + del src_oss_list[i] |
247 | 234 | except Exception as ex: |
248 | 235 | logger.warning(f"correct the scanner result:{ex}") |
249 | 236 |
|
|
0 commit comments