def get_tools_list(self, TOOL_FILE_PATH): tool_list = [] cur_tool_obj = None with open(TOOL_FILE_PATH, "r", errors='ignore', encoding='utf-8') as reader: for line in reader: line = line.strip() if (line == ""): continue tool_pattern = re.compile(TOOL) tool_id_pattern = re.compile(TOOL_ID) tool_name_pattern = re.compile(TOOL_NAME) tool_description_pattern = re.compile(TOOL_DESCR) tool_url_pattern = re.compile(TOOL_URL) tool_supp_smells_pattern = re.compile(TOOL_SUPP_SMELL) tool_supp_langs_pattern = re.compile(TOOL_SUPP_LANGS) tool_end_pattern = re.compile(TOOL_END) if (re.search(tool_pattern, line) != None): cur_tool_obj = Tool() elif (re.search(tool_end_pattern, line) != None): tool_list.append(cur_tool_obj) elif (re.search(tool_id_pattern, line) != None): cur_tool_obj.id = re.split(TOOL_ID, line)[1].strip() elif (re.search(tool_name_pattern, line) != None): cur_tool_obj.name = re.split(TOOL_NAME, line)[1].strip() elif (re.search(tool_description_pattern, line) != None): cur_tool_obj.description = re.split(TOOL_DESCR, line)[1].strip() elif (re.search(tool_url_pattern, line) != None): cur_tool_obj.url = re.split(TOOL_URL, line)[1].strip() elif (re.search(tool_supp_smells_pattern, line) != None): cur_tool_obj.supported_smells.append( re.split(TOOL_SUPP_SMELL, line)[1].strip()) elif (re.search(tool_supp_langs_pattern, line) != None): cur_tool_obj.supported_langs = re.split( TOOL_SUPP_LANGS, line)[1].strip() return tool_list