将新task列表添加到原有task参数列表中,合并去重,一个工具只保留一个task
(task_list, new_tasks)
| 107 | |
| 108 | @staticmethod |
| 109 | def merge_tasks(task_list, new_tasks): |
| 110 | """将新task列表添加到原有task参数列表中,合并去重,一个工具只保留一个task""" |
| 111 | task_dict = {} |
| 112 | for task in task_list: |
| 113 | task_name = task["task_name"] |
| 114 | task_dict[task_name] = task |
| 115 | |
| 116 | for task in new_tasks: |
| 117 | task_name = task["task_name"] |
| 118 | if task_name in task_dict: |
| 119 | new_rule_list = task["task_params"]["rule_list"] |
| 120 | rule_list = task_dict[task_name]["task_params"]["rule_list"] |
| 121 | task_dict[task_name]["task_params"]["rule_list"] = QuickScan.merge_rule_list(rule_list, new_rule_list) |
| 122 | |
| 123 | new_rules = task["task_params"]["rules"] |
| 124 | rules = task_dict[task_name]["task_params"]["rules"] |
| 125 | rules.extend(new_rules) |
| 126 | task_dict[task_name]["task_params"]["rules"] = list(set(rules)) |
| 127 | else: |
| 128 | task_dict[task_name] = task |
| 129 | return list(task_dict.values()) |
| 130 | |
| 131 | @staticmethod |
| 132 | def merge_rule_list(rule_list, new_rule_list): |
no test coverage detected