格式化工具执行结果
(self, source_dir, scan_result, rules)
| 68 | return msg |
| 69 | |
| 70 | def format_result(self, source_dir, scan_result, rules): |
| 71 | """格式化工具执行结果""" |
| 72 | issues = [] |
| 73 | relpos = len(source_dir) + 1 |
| 74 | # scan_result 字典数组去重 |
| 75 | f = lambda x, y: x if y in x else x + [y] |
| 76 | scan_result = reduce( |
| 77 | f, |
| 78 | [ |
| 79 | [], |
| 80 | ] |
| 81 | + scan_result, |
| 82 | ) |
| 83 | # 格式化结果 |
| 84 | for error in scan_result: |
| 85 | rule_name = error["error_type"] |
| 86 | # 结果可能包含不需要扫描的规则,过滤掉 |
| 87 | if rules and rule_name not in rules: |
| 88 | logger.debug("ignore rule:%s" % rule_name) |
| 89 | continue |
| 90 | issue = {} |
| 91 | issue["path"] = error["file_path"][relpos:] |
| 92 | issue["line"] = error["line_num"] |
| 93 | issue["column"] = "1" |
| 94 | issue["msg"] = self.__format_message(source_dir, error["error_msg"]) |
| 95 | issue["rule"] = rule_name |
| 96 | issues.append(issue) |
| 97 | return issues |
| 98 | |
| 99 | |
| 100 | class CpplintRunner(object): |
no test coverage detected