def prepare_to_move_files(self, zip_dict, conf): # if not os.path.exists(conf.classified_folder): os.mkdir(conf.classified_folder) # move_list = [] unzip_list = [] # manager for manager in self.manager_list: ma_path = os.path.join(conf.classified_folder, manager.name) # module for module in manager.module_list: mo_path = os.path.join(ma_path, module.name) # line for line in module.line_list: line_folder = IOHelper.Naming.valid_name( line.name) # line num is not specified li_path = os.path.join(mo_path, line_folder) # ini, server side do not need ini if conf.write_ini: ini = IOHelper.INI() line.report_list = sorted(line.report_list) ini.write(li_path + '\\error_package.ini', line.report_list) # for i, report_id in enumerate(line.report_list): # move small portion of zip files to folder if 0 < conf.num_zip_move <= i: continue # src # dict struct: id->(folder, zip) src = zip_dict[report_id][1] # dst dfn = IOHelper.DumpFileName(conf) zip_fname = dfn.zip_name_from_id(report_id) dst = os.path.join(li_path, zip_fname) # print(dst, len(line.report_list)) # add to move list move_list.append((src, dst)) if 0 <= conf.num_zip_extract <= i: continue # add to unzip list unzip_list.append(dst) return move_list, unzip_list
def create_folders(self): """create folders for new record""" for record in self.data: if record.update_folder: # no corresponding folder for this record, create it folder = record.to_folder(self.config.classified_folder) if not os.path.exists(folder): os.mkdirs(folder) # write ini file for current folder ini = IOHelper.INI() ini.write(os.path.join(folder, 'error_package.ini'), record.report_list) # move zip files to current folder report_list = record.report_list[0:conf.num_zip_move] fm = IOHelper.FileMover(self.config) move_list = fm.move(conf.zip_folder, folder, report_list) zip_list = [pair[1] for pair in move_list] fm.unzip_files(zip_list) record.update_folder = False