def handle_files(self): """ Process files :return: None """ if not self.files: return total_lines = 0 covered_lines = 0 dirs = {} for file_ in self.files: Statistics.calculate(file_) dir_name = os.path.dirname(file_.path) if dir_name not in dirs: dirs[dir_name] = Folder(dir_name) dirs[dir_name].add_file(file_) for dir_ in dirs.values(): total_lines = total_lines + dir_.total_lines covered_lines = covered_lines + dir_.covered_lines open_file = open( os.path.join(CC_BASE, HTML.INDEX_FILE + HTML.FILE_EXT), "w") root_link = HTML.get_link(CC_BASE, HTML.LINK_ROOT, "") open_file.write(HTML.get_header(root_link, HTML.TABLE_HEADER)) for dir_ in dirs.values(): path = os.path.join(self.ROOT_PATH, dir_.name[1:], HTML.INDEX_FILE + HTML.FILE_EXT).replace( '//', '/') last_pos = dir_.name.rfind("/") open_file.write( HTML.get_line(path, dir_.name[last_pos + 1:], dir_.total_lines, dir_.covered_lines)) open_file.write(HTML.get_footer(total_lines, covered_lines)) open_file.close() for dir_ in dirs.values(): path = (CC_BASE + "/" + self.ROOT_PATH + dir_.name)\ .replace('//', '/') if not os.path.exists(path): os.makedirs(path) open_file = open( os.path.join(path, HTML.INDEX_FILE + HTML.FILE_EXT), "w") open_file.write( HTML.get_header(root_link + dir_.basename, HTML.TABLE_HEADER)) for file_ in dir_.files: open_file.write( HTML.get_line(file_.basename + HTML.FILE_EXT, file_.basename, file_.total_lines, file_.covered_lines)) open_file.write( HTML.get_footer(dir_.total_lines, dir_.covered_lines)) open_file.close() for file_ in self.files: self.handle_file(file_)