把[{'name':str, 'params':str}...]格式的rule_list转换为 rule_name-value的格式 :param rule_list: [{'name':str, 'params':str}...] :return: { rule_name: { 'res_suffix': res_exts, 'code_suffix': code_exts } }
(self, rule_list)
| 25 | |
| 26 | class UnusedResource(CodeLintModel): |
| 27 | def __format_rules(self, rule_list): |
| 28 | """把[{'name':str, 'params':str}...]格式的rule_list转换为 rule_name-value的格式 |
| 29 | :param rule_list: [{'name':str, 'params':str}...] |
| 30 | :return: { |
| 31 | rule_name: { |
| 32 | 'res_suffix': res_exts, |
| 33 | 'code_suffix': code_exts |
| 34 | } |
| 35 | } |
| 36 | """ |
| 37 | rules = {} |
| 38 | for rule in rule_list: |
| 39 | rule_name = rule['name'] |
| 40 | rule_params = "[UnusedResource]\r\n" + rule['params'] |
| 41 | rule_params_dict = {} |
| 42 | cfg = configparser.RawConfigParser() |
| 43 | cfg.read_string(rule_params) |
| 44 | |
| 45 | for key, value in cfg.items('UnusedResource'): |
| 46 | rule_params_dict[key] = value |
| 47 | |
| 48 | res_exts = rule_params_dict.get('res_suffix', '') |
| 49 | res_exts = [p.strip() for p in res_exts.split(';') if p.strip()] if res_exts else [] |
| 50 | res_exts = tuple(set(res_exts)) # 去重并转换成tuple |
| 51 | code_exts = rule_params_dict.get('code_suffix', '') |
| 52 | code_exts = [p.strip() for p in code_exts.split(';') if p.strip()] if code_exts else [] |
| 53 | code_exts = tuple(set(code_exts)) # 去重并转换成tuple |
| 54 | |
| 55 | rules[rule_name] = { |
| 56 | 'res_suffix': res_exts, |
| 57 | 'code_suffix': code_exts, |
| 58 | } |
| 59 | return rules |
| 60 | |
| 61 | def __get_scan_files(self, root_dir, code_suffixs, res_suffixs): |
| 62 | """获取需要扫描的代码文件和资源文件列表 |