def createPortablePackage( self ): """create portable 7z package with digest files located in the manifest subdir""" if not self.packagerExe: utils.die("could not find 7za in your path!") if self.package.endswith( "-package" ): shortPackage = self.package[ : -8 ] else: shortPackage = self.package if not "setupname" in self.defines or not self.defines[ "setupname" ]: self.defines[ "setupname" ] = shortPackage if self.subinfo.options.package.withArchitecture: self.defines[ "setupname" ] += "-" + os.getenv("EMERGE_ARCHITECTURE") self.defines[ "setupname" ] += "-" + self.buildTarget + ".7z" if not "srcdir" in self.defines or not self.defines[ "srcdir" ]: self.defines[ "srcdir" ] = self.imageDir() for f in self.scriptnames: utils.copyFile(f,os.path.join(self.defines[ "srcdir" ],os.path.split(f)[1])) # make absolute path for output file if not os.path.isabs( self.defines[ "setupname" ] ): dstpath = self.packageDestinationDir() self.defines[ "setupname" ] = os.path.join( dstpath, self.defines[ "setupname" ] ) utils.deleteFile(self.defines[ "setupname" ]) cmd = "cd %s && %s a -r %s %s" % (self.defines[ "srcdir" ], self.packagerExe,self.defines[ "setupname" ], '*') if not utils.system(cmd): utils.die( "while packaging. cmd: %s" % cmd )
def deleteSave(savelist, fromSaveError=False): _invalid = '' while True: _1, _2, _3 = savelist[:3] clearScreen() print(display['deletesave'].format(_1, _2, _3) + _invalid) _invalid = '' choice = userInput() if choice not in '123b': _invalid = '\n [ Please choose valid option ]\n' elif choice == 'b': break elif int(choice) > len(savelist) - 3: _invalid = '\n [ This save file is empty ]\n' else: clearScreen() print(display['confirm'].format('DELETE')) while True: confirm = userInput() if confirm == 'n': break elif confirm == 'y': deleteFile( os.path.join(scriptDirPath, 'saves', savelist[int(choice) - 1])) savelist.pop(int(choice) - 1) if fromSaveError: return break return savelist
def createPackage(self): """ create a package """ CraftCore.log.debug("packaging using the MacDMGPackager") defines = self.setDefaults(self.defines) # TODO: provide an image with dbg files if not self.internalCreatePackage(defines): return False appPath = self.getMacAppPath(defines) if not appPath: return False archive = os.path.normpath(self.archiveDir()) CraftCore.log.info(f"Packaging {appPath}") dmgDest = defines["setupname"] if os.path.exists(dmgDest): utils.deleteFile(dmgDest) appName = defines['appname'] + ".app" if not utils.system(["create-dmg", "--volname", os.path.basename(dmgDest), # Add a drop link to /Applications: "--icon", appName, "140", "150", "--app-drop-link", "350", "150", dmgDest, appPath]): return False if not CodeSign.signMacPackage(dmgDest): return False CraftHash.createDigestFiles(dmgDest) return True
def run ( self ): print ( "Runnin' test\n" ) ## Configuring ## super ( Test, self ).createTestEnvironment () path_1 = super ( Test, self ).workspacePath ( "file_1.file" ) path_2 = super ( Test, self ).workspacePath ( "file_2.file" ) path_3 = super ( Test, self ).workspacePath ( "dir" ) path_4 = super ( Test, self ).workspacePath ( "dir/file_4.file" ) path_2t = super ( Test, self ).tempPath ( "file_2.file" ) ## First pass ## try: self.startDetached () ## Creatin' 32K file and smaller files utils.createFile ( path_1, 33 ) utils.createFile ( path_2, 32768 ) gc.collect () print ( "XXX: " + str ( gc.garbage ) ) time.sleep ( 1 ) utils.checkFileSize ( path_1, 33 ) utils.deleteFile ( path_1 ) ## Copyin' files utils.checkFileSize ( path_2, 32768 ) utils.copyFile ( path_2, path_2t ) ## Directoryin' files # utils.createDirectory ( path_3 ) # utils.copyFile ( path_2, path_4 ) # utils.listDirectory ( super ( Test, self ).workspacePath ( "." ) ) # time.sleep ( 1 ) print ( "XXX: " + str ( gc.garbage ) ) self.stopDetached () except: print ( "XXX: " + str ( gc.garbage ) ) self.stopDetached () print ( "Error:" + str ( sys.exc_info () [ 0 ] ) ) raise return ## Second pass ## try: self.startDetached () self.stopDetached () except: self.stopDetached () print ( "Error:" + str ( sys.exc_info () [ 0 ] ) ) return
def clearStatistics(folder): """Remove some files created by statistics.py in a given folder.""" currentcwd = os.getcwd() os.chdir(folder) files = ["avg_energy.png", constants.avg_en_vel_filename, constants.avg_dist_filename] for f in files: path = os.path.join(folder, f) utils.deleteFile(path) os.chdir(currentcwd)
def erase(self): """Erase the dataset.""" mmapfiles = [] for name in self.arrays: arr = self.__getattribute__(name) if type(arr) == np.memmap: mmapfiles.append(arr.filename) del arr for delfile in mmapfiles: utils.deleteFile(delfile)
def run_protocol(self): #print("data",self.alignerList[0]) #if not os.path.exists("indexes"): # os.mkdir("indexes") #os.chdir("indexes") #for genome in self.inputfile: for aligner in self.alignersList: #if os.path.exists(dir): # continue #os.mkdir(dir) #os.chdir(dir) if aligner.upper() == "HISAT": objhisat = hisat(inputfile=self.inputfile, workingpath="aligners/HISAT") if (self.parameters[0]['build_index']): runCommand( objhisat.build_command ) #go to the specific directory and run the build command print("Building index file completed.") deleteFile(os.path.join( "/workingpath/", "abc")) #delete the inputfile to save the space #print("if 1",aligner.upper()) #print(cmd) elif aligner.upper() == "HISAT2": objhisat2 = hisat2(inputfile=self.inputfile, workingpath="aligners/HISAT2") if (self.parameters[1]['build_index']): runCommand(objhisat2.build_command) print("Building index file completed.") deleteFile(os.path.join( "/workingpath/", "abc")) #delete the inputfile to save the space elif aligner == "BOWTIE": cmd = "bowtie-build ../data/%s %s" % (self.inputfile, self.inputfile) elif aligner == "STAR": cmd = "../../aligners/bin/STAR --runMode genomeGenerate --genomeDir . --genomeFastaFiles ../../data/%s.fa" % ( self.inputfile) elif aligner == "GSNAP": cmd = "../../aligners/bin/gmap_build -B ../../aligners/bin -D . -d %s ../../data/%s.fa" % ( self.inputfile, self.inputfile) else: print("Aligner:", aligner, " does not exist.") assert False
def install( self ): if self.isTargetBuild(): # Configuring Qt for WinCE ignores the -prefix option, # so we have to do the job manually... # delete this because it is not working for windows utils.deleteFile( os.path.join( self.buildDir(), "plugin", "bearer", "qnmbearerd4.dll" )) utils.deleteFile( os.path.join( self.buildDir(), "plugin", "bearer", "qnmbearer4.dll" )) # syncqt expects qconfig.h to be in the install dir and fails if not utils.createDir( os.path.join( self.installDir(), "src", "corelib", "global") ) utils.copyFile( os.path.join( self.buildDir(), "src", "corelib", "global", "qconfig.h" ), os.path.join( self.installDir(), "src", "corelib" , "global", "qconfig.h" ) ) # headers need to be copied using syncqt because of the relative paths utils.prependPath(self.sourceDir(), "bin") command = os.path.join(self.sourceDir(), "bin", "syncqt.bat") command += " -base-dir \"" + self.sourceDir() + "\"" command += " -outdir \"" + self.installDir() + "\"" command += " -copy" command += " -quiet" utils.system( command ) utils.copySrcDirToDestDir( os.path.join( self.buildDir(), "bin" ) , os.path.join( self.installDir(), "bin" ) ) utils.copySrcDirToDestDir( os.path.join( self.buildDir(), "lib" ) , os.path.join( self.installDir(), "lib" ) ) # the dlls must be copied to the bin dir too for file in os.listdir( os.path.join( self.installDir(), "lib" ) ): if file.endswith( ".dll" ): utils.copyFile( os.path.join( self.installDir(), "lib" , file ), os.path.join( self.installDir(), "bin" , file ) ) utils.copySrcDirToDestDir( os.path.join( self.buildDir(), "mkspecs" ) , os.path.join( self.installDir(), "mkspecs" ) ) utils.copySrcDirToDestDir( os.path.join( self.buildDir(), "plugins" ) , os.path.join( self.installDir(), "plugins" ) ) # create qt.conf utils.copyFile( os.path.join( self.packageDir(), "qt.conf" ), os.path.join( self.installDir(), "bin", "qt.conf" ) ) return True if not QMakeBuildSystem.install(self): return False # Workaround QTBUG-12034 utils.copySrcDirToDestDir( os.path.join( self.buildDir(), "plugins", "imageformats" ) , os.path.join( self.installDir(), "bin", "imageformats" ) ) # create qt.conf utils.copyFile( os.path.join( self.packageDir(), "qt.conf" ), os.path.join( self.installDir(), "bin", "qt.conf" ) ) # install msvc debug files if available if self.buildType() == "Debug" and (self.compiler() == "msvc2005" or self.compiler() == "msvc2008" or self.compiler() == "msvc2010"): srcdir = os.path.join( self.buildDir(), "lib" ) destdir = os.path.join( self.installDir(), "lib" ) filelist = os.listdir( srcdir ) for file in filelist: if file.endswith( ".pdb" ): utils.copyFile( os.path.join( srcdir, file ), os.path.join( destdir, file ) ) return True
def removeChannel(id): channel = getChannelFromFile(id) if not channel: return False if channel.userDef != 1 and channel.isClone != 1: return False if not utils.DialogYesNo('Remove %s' % channel.title, noLabel='Cancel', yesLabel='Confirm'): return False path = os.path.join(TVP_CHANNELS, id) utils.deleteFile(path) return True
def install(self): """Using *make install""" self.cleanImage() self.enterBuildDir() args = self.makeOptions(self.subinfo.options.install.args) destDir = self.shell.toNativePath(self.installDir()) args += [f"DESTDIR={destDir}"] with utils.ScopedEnv({"DESTDIR": destDir}): if not self.shell.execute(self.buildDir(), self.makeProgram, args): return False # la files aren't relocatable and until now we lived good without them laFiles = glob.glob(os.path.join(self.imageDir(), "**/*.la"), recursive=True) for laFile in laFiles: if not utils.deleteFile(laFile): return False if not self._fixInstallPrefix( self.shell.toNativePath(self.installPrefix())): return False if CraftCore.compiler.isMSVC(): # libtool produces intl.dll.lib while we expect intl.lib lib = glob.glob(os.path.join(self.imageDir(), "lib/**/*.dll.lib"), recursive=True) for src in lib: src = Path(src) dest = src.with_suffix("").with_suffix(".lib") if not dest.exists(): if not utils.moveFile(src, dest): return False return True
def removeChannel(id): channel = getChannelFromFile(id) if not channel: return False if channel.userDef != 1 and channel.isClone != 1: return False if not utils.DialogYesNo( 'Remove %s' % channel.title, noLabel='Cancel', yesLabel='Confirm'): return False path = os.path.join(OTT_CHANNELS, id) utils.deleteFile(path) return True
def combineIQData(fileName, iqSavedCount, sampleRate, bps): fileOutput = "{}.wav".format(fileName) for p in range(iqSavedCount): fileInput = "{}-{:05d}.iq".format(fileName, p) try: file = open(fileInput, "rb") if bps == 8: data = np.fromfile(file, dtype=np.int8) fileData = data.astype('int16') fileData *= 32 else: fileData = np.fromfile(file, dtype=np.int16) #fileData.byteswap(True) #fileData = fileData.byteswap().newbyteorder() #fileData = data.astype('int16') #print("D", type(fileData[0]), len(fileData)) #for d in range(len(fileData)/2): # v = fileData[2*d] # fileData[2*d] = fileData[2*d+1] # fileData[2*d+1] = v file.close() if p % 100 == 0: print("Combine chunks: {} of {}".format(p + 1, iqSavedCount)) if p == 0: # Create new file with open(fileOutput, "wb") as fileNew: cnt = len(fileData) w = WaveFile(sample_rate=sampleRate, samples_num=cnt * iqSavedCount) w.saveHeader(fileNew) fileNew.write(fileData) else: # Append to the end with open(fileOutput, "ab") as fileAppend: fileAppend.write(fileData) utils.deleteFile(fileInput) except Exception as e: exc_type, exc_obj, tb = sys.exc_info() print("combineIQData error:", str(e), e.args[0], tb.tb_lineno) print("Done")
def createPackage(self): """ create a package """ CraftCore.log.debug("packaging using the MacDMGPackager") if not CraftCore.cache.findApplication("packagesutil"): CraftCore.log.critical( "Craft requires dev-utils/packagesdev to create a package, please install dev-utils/packagesdev\n" "\t'craft dev-utils/packagesdev'") return False defines = self.setDefaults(self.defines) if not "pkgproj" in defines: CraftCore.log.error( "Cannot not create .pkg because no .pkgproj was defined.") return False if not self.internalCreatePackage( defines, seperateSymbolFiles=True, packageSymbols=True): return False packageDest = Path(defines["setupname"]) if packageDest.exists(): utils.deleteFile(packageDest) pkgprojPath = defines["pkgproj"] # set output file basename packagesutil = CraftCore.cache.findApplication("packagesutil") if not utils.system([ packagesutil, '--file', pkgprojPath, 'set', 'project', 'name', packageDest.stem ]): return False packagesbuild = CraftCore.cache.findApplication("packagesbuild") if not utils.system([ packagesbuild, "-v", '--reference-folder', os.path.dirname(self.getMacAppPath(defines)), '--build-folder', packageDest.parent, pkgprojPath ]): return False if not CodeSign.signMacPackage(packageDest): return False CraftHash.createDigestFiles(packageDest) return True
def combineImages(imageFileName, filesSavedCount, doRemove=True): try: folder = utils.getAppFolder() # Combine several images to a big one print("Combine files:") imgData = None for p in range(filesSavedCount): fileName = "{}-{:05d}.jpg".format(imageFileName, p) filePath = utils.makeFilePath(folder, fileName) try: img = imageProcessing.loadImage(filePath) if imgData is None: # Add first image as is imgData = imageProcessing.imageToArray(img) else: # Remove header from other images width, height = img.size headerH = imageProcessing.getHeaderHeight() imgCrop = img.crop((0, headerH, width, height - headerH)) data = imageProcessing.imageToArray(imgCrop) imgData = np.append(imgData, data, axis=0) print("{} added".format(fileName)) except: print("{} ignored".format(fileName)) # Save result fileName = "{}.jpg".format(imageFileName) filePath = utils.makeFilePath(folder, fileName) imgOut = imageProcessing.imageFromArray(imgData) imgOut.save(filePath) print("Done, {} saved".format(filePath)) if doRemove is False: return # Remove originals for p in range(filesSavedCount): fileName = "{}-{:05d}.jpg".format(imageFileName, p) filePath = utils.makeFilePath(folder, fileName) utils.deleteFile(filePath) except Exception as e: exc_type, exc_obj, tb = sys.exc_info() print("combineImages error:", e.args[0], tb.tb_lineno)
def contextMenuEvent(self, pos): if self.selectionModel().selection().indexes(): for i in self.selectionModel().selection().indexes(): row, column = i.row(), i.column() menu = QtGui.QMenu() if self._slideShowWin: openAction = menu.addAction("Open") renaAction = menu.addAction("Rename") # TODO: implemented only for osx if sys.platform == 'darwin': deleAction = menu.addAction("Delete") action = menu.exec_(self.mapToGlobal(pos)) if action == openAction: self.openAction(row, column) if action == renaAction: self.edit(self.selectionModel().currentIndex()) if action == deleAction: utils.deleteFile(self._twoDLst[row][column][0]) self.updateModel()
def performUpdate(response, silent): try: version = response['Version'] link = response['Link'] md5 = response['MD5'] except: return path = getDownloadPath() if utils.generateMD5(path) != md5: if (not silent) and (not utils.yesno(1, 10, 11)): return dp = None if not silent: dp = utils.progress(1, 14, 15) hash = 0 count = 0 nTries = 3 if not silent: nTries = 1 while (count < nTries) and (hash != md5): count += 1 try: download(link,path,version,dp) hash = utils.generateMD5(path) except Exception, e: utils.deleteFile(path) if str(e) == 'Canceled': return if hash != md5: utils.unflagUpdate() utils.deleteFile(path) utils.setSetting('dVersion', '0.0.0') if not silent: utils.ok(1, 24, 13) return
def performUpdate(response, silent): try: version = response['Version'] link = response['Link'] md5 = response['MD5'] except: return path = getDownloadPath() if utils.generateMD5(path) != md5: if (not silent) and (not utils.yesno(1, 10, 11)): return dp = None if not silent: dp = utils.progress(1, 14, 15) hash = 0 count = 0 nTries = 3 if not silent: nTries = 1 while (count < nTries) and (hash != md5): count += 1 try: download(link, path, dp) hash = utils.generateMD5(path) except Exception, e: utils.deleteFile(path) if str(e) == 'Canceled': return if hash != md5: utils.unflagUpdate() utils.deleteFile(path) utils.setSetting('dVersion', '0.0.0') if not silent: utils.ok(1, 24, 13) return
def cut_images(self, srcFolder, destFolder): num = 0 fileNames = utils.eachFile(srcFolder) for fileName in fileNames: image = cv2.imread(fileName) if(image is None): utils.deleteFile(fileName) continue width, height, channel = image.shape if(width > 400 and height > 400): num += 1 print(num, width, height) image = cv2.resize(image, (400, 400)) fileName = re.findall(srcFolder + '/(.*)', fileName)[0] newFilePath = os.path.join(destFolder, fileName) cv2.imwrite(newFilePath, image)
def reduce_size(self, srcFolder, destFolder, magnification): if (magnification >= 1): print('Magnification must be less than 1!') return False fileNames = utils.eachFile(srcFolder) for fileName in fileNames: image = cv2.imread(fileName) # 删除不可用图片 if(image is None): utils.deleteFile(fileName) continue width, height, channel = image.shape # 向下取整缩小 output = cv2.resize(image, (int(width * magnification), int(height * magnification)), interpolation=cv2.INTER_AREA) fileName = re.findall(srcFolder+'/(.*)' ,fileName)[0] newFilePath = os.path.join(destFolder, fileName) cv2.imwrite(newFilePath, output)
def install(self): """Using *make install""" self.cleanImage() self.enterBuildDir() command = self.makeProgram args = self.makeOptions(self.subinfo.options.install.args) destDir = self.shell.toNativePath(self.installDir()) args += [f"DESTDIR={destDir}"] with utils.ScopedEnv({"DESTDIR" : destDir}): if not self.shell.execute(self.buildDir(), command, args): return False # la files aren't relocatable and until now we lived good without them laFiles = glob.glob(os.path.join(self.imageDir(), "**/*.la"), recursive=True) for laFile in laFiles: if not utils.deleteFile(laFile): return False return self._fixInstallPrefix(self.shell.toNativePath(self.installPrefix()))
def performManualUpdate(response, silent): try: import xbmcgui path = getDownloadPath() select_name=['Cancel'] select_url=['Cancel'] for i in json.loads(response): cVersion = utils.getSetting('cVersion') if not cVersion in i['Version']: select_name.append(i['Version']) select_url.append(i['Link']+'*'+i['Version']+'*'+i['MD5']) link = select_url[xbmcgui.Dialog().select('Your Current Firmware '+ cVersion , select_name)] if 'Cancel' in link: return url = link.split('*')[0] version = link.split('*')[1] md5 = link.split('*')[2] if utils.generateMD5(path) != md5: if (not silent) and (not utils.yesno(1, 11, 0)): return dp = None if silent: dp = utils.progress(1, 14, 15) hash = 0 count = 0 nTries = 3 if not silent: nTries = 1 while (count < nTries) and (hash != md5): count += 1 try: download(url,path,version,dp) hash = utils.generateMD5(path) except Exception, e: utils.deleteFile(path) if str(e) == 'Canceled': return if hash != md5: utils.unflagUpdate() utils.deleteFile(path) utils.setSetting('dVersion', '0.0.0') if not silent: utils.ok(1, 24, 13) return utils.setSetting('dVersion', version) if not utils.okReboot(1, 23, 16, 18, delay = 15): return reboot()
def performManualUpdate(response, silent): try: import xbmcgui path = getDownloadPath() select_name = ['Cancel'] select_url = ['Cancel'] for i in json.loads(response): cVersion = utils.getSetting('cVersion') if not cVersion in i['Version']: select_name.append(i['Version']) select_url.append(i['Link'] + '*' + i['Version'] + '*' + i['MD5']) link = select_url[xbmcgui.Dialog().select( 'Your Current Firmware ' + cVersion, select_name)] if 'Cancel' in link: return url = link.split('*')[0] version = link.split('*')[1] md5 = link.split('*')[2] if utils.generateMD5(path) != md5: if (not silent) and (not utils.yesno(1, 11, 0)): return dp = None if silent: dp = utils.progress(1, 14, 15) hash = 0 count = 0 nTries = 3 if not silent: nTries = 1 while (count < nTries) and (hash != md5): count += 1 try: download(url, path, version, dp) hash = utils.generateMD5(path) except Exception, e: utils.deleteFile(path) if str(e) == 'Canceled': return if hash != md5: utils.unflagUpdate() utils.deleteFile(path) utils.setSetting('dVersion', '0.0.0') if not silent: utils.ok(1, 24, 13) return utils.setSetting('dVersion', version) if not utils.okReboot(1, 23, 16, 18, delay=15): return reboot()
def _replaceSetting(reg,new,text): return re.compile(reg, re.MULTILINE).sub(new,text) def resetSettings(): with open( os.path.join( EmergeStandardDirs.etcDir(), "kdesettings.ini.backup"),"rt+") as fin: text = fin.read() text = _replaceSetting("^PACKAGE_IGNORES.*$", "PACKAGE_IGNORES =", text) text = _replaceSetting("^EMERGE_USE_CCACHE.*$", "#EMERGE_USE_CCACHE = True", text) text = _replaceSetting("^Python =.*$", "Python = C:\python34", text) text = _replaceSetting("^DOWNLOADDIR =.*$", "#DOWNLOADDIR = C:\kde\download", text) with open( os.path.join( EmergeStandardDirs.etcDir(), "kdesettings.ini"),"wt+") as fout: fout.write(text) if __name__ == "__main__": EmergeDebug.setVerbose(3) # we don't use the db directly and the file must not be locked del InstallDB.installdb backup() removeFromDB("dev-util") removeFromDB("gnuwin32") # we cant use the ini support to modify the settings as it would kill the comments resetSettings() utils.system("cd %s && git clean -xdf" % os.path.join(EmergeStandardDirs.emergeRoot(), "emerge")) utils.createDir(EmergeStandardDirs.tmpDir()) archiveName = os.path.join(EmergeStandardDirs.tmpDir(), "framewroks-sdk-%s-%s-%s.7z" % (compiler.getCompilerName(), compiler.architecture(), datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d'))) utils.deleteFile(archiveName) utils.system("7za a %s %s -x!build -x!msys -x!dev-utils -x!tmp -x!mingw* -x!etc/kdesettings.ini.backup -x!etc/portage/install.db.backup" % ( archiveName, EmergeStandardDirs.emergeRoot())) #utils.copyFile(os.path.join( EmergeStandardDirs.etcDir(), "kdesettings.ini"), os.path.join( EmergeStandardDirs.etcDir(), "kdesettings.ini.backup2"),linkOnly=False) restore()
title = 'History {:02d}/{:02d}'.format(historyMonth, year - int(year / 100) * 100) book.duplicate_sheet(historySheet.id, HIST_SHEET_INDEX + 1, new_sheet_name=title) # now freeze values log.info('Freezing values in archive') archiveSheet = book.get_worksheet(HIST_SHEET_INDEX + 1) historyCells = archiveSheet.range(HIST_START_ROW, HIST_START_COL - 1, HIST_START_ROW + 31 - 1, HIST_END_COL) archiveSheet.update_cells(historyCells, value_input_option='USER_ENTERED') # clear previous month history log.info('Clearing previous month history') for d in range(1, 32): historySheet.update_cell(d + HIST_START_ROW - 1, HIST_START_COL, '') historySheet.update_acell(HIST_MONTH_CELL, month) # now update daily value log.info('Updating history sheet') historySheet.update_cell(day + HIST_START_ROW - 1, HIST_START_COL, usedData) # delete cache utils.deleteFile(CACHE_USAGE) # done finish(args, usageData, gSheetUrl)