From 3cf3695ea50b5e80604a23ef04620e716ccc067c Mon Sep 17 00:00:00 2001 From: lxnay Date: Wed, 28 May 2008 20:06:11 +0000 Subject: [PATCH] Entropy/Spritz: - some code cleanup and speed optimization git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2031 cd1c1023-2f26-0410-ae45-c471fc1f0318 --- spritz/src/etpgui/__init__.py | 41 -------------------------------- spritz/src/spritz.py | 44 +++++++++++++++++++++-------------- 2 files changed, 26 insertions(+), 59 deletions(-) diff --git a/spritz/src/etpgui/__init__.py b/spritz/src/etpgui/__init__.py index 9572c3618..435300e0d 100644 --- a/spritz/src/etpgui/__init__.py +++ b/spritz/src/etpgui/__init__.py @@ -62,7 +62,6 @@ class ProcessGtkEventsThread(Thread): continue while gtk.events_pending(): # process gtk events gtk.main_iteration() - self.dosleep() def dosleep(self): try: @@ -80,43 +79,3 @@ class ProcessGtkEventsThread(Thread): def endProcessing(self): self.__active.clear() -# from output.py (yum) -def format_number(number, SI=0, space=' '): - """Turn numbers into human-readable metric-like numbers""" - symbols = ['', # (none) - 'k', # kilo - 'M', # mega - 'G', # giga - 'T', # tera - 'P', # peta - 'E', # exa - 'Z', # zetta - 'Y'] # yotta - - if SI: step = 1000.0 - else: step = 1024.0 - - thresh = 999 - depth = 0 - - # we want numbers between - while number > thresh: - depth = depth + 1 - number = number / step - - # just in case someone needs more than 1000 yottabytes! - diff = depth - len(symbols) + 1 - if diff > 0: - depth = depth - diff - number = number * thresh**depth - - if type(number) == type(1) or type(number) == type(1L): - format = '%i%s%s' - elif number < 9.95: - # must use 9.95 for proper sizing. For example, 9.99 will be - # rounded to 10.0 with the .1f format string (which is too long) - format = '%.1f%s%s' - else: - format = '%.0f%s%s' - - return(format % (number, space, symbols[depth])) diff --git a/spritz/src/spritz.py b/spritz/src/spritz.py index acb06fad9..118972397 100644 --- a/spritz/src/spritz.py +++ b/spritz/src/spritz.py @@ -30,7 +30,7 @@ sys.path.insert(1,"../../client") sys.path.insert(2,"/usr/lib/entropy/libraries") sys.path.insert(3,"/usr/lib/entropy/client") from entropyConstants import * -import exceptionTools +import exceptionTools, entropyTools from packages import EntropyPackages from entropyapi import EquoConnection, QueueExecutor from entropy import ErrorReportInterface @@ -78,8 +78,6 @@ class SpritzController(Controller): gtkEventThread.doQuit() if self.isWorking: self.quitNow = True - self.logger.critical(_('Quiting, please wait !!!!!!')) - time.sleep(3) self.exitNow() return False else: @@ -107,7 +105,7 @@ class SpritzController(Controller): def runEditor(self, filename, delete = False): cmd = ' '.join([self.fileEditor,filename]) - task = self.Equo.entropyTools.parallelTask(self.__runEditor, {'cmd': cmd, 'delete': delete,'file': filename}) + task = entropyTools.parallelTask(self.__runEditor, {'cmd': cmd, 'delete': delete,'file': filename}) task.start() def __runEditor(self, data): @@ -252,7 +250,7 @@ class SpritzController(Controller): identifier, source, dest = self.__get_Edit_filename() if not identifier: return True - randomfile = self.Equo.entropyTools.getRandomTempFile()+".diff" + randomfile = entropyTools.getRandomTempFile()+".diff" diffcmd = "diff -Nu "+dest+" "+source+" > "+randomfile os.system(diffcmd) self.runEditor(randomfile, delete = True) @@ -470,7 +468,7 @@ class SpritzController(Controller): repostuff = selection.get_selected() if repostuff[1] != None: repoid = self.repoView.get_repoid(repostuff) - repodata = self.Equo.entropyTools.getRepositorySettings(repoid) + repodata = entropyTools.getRepositorySettings(repoid) self.__loadRepodata(repodata) self.addrepo_ui.addRepoWin.show() @@ -1231,6 +1229,14 @@ class SpritzApplication(SpritzController,SpritzGUI): if __name__ == "__main__": + + def killThreads(): + # kill threads + threads = entropyTools.threading.enumerate() + for thread in threads: + if thread.getName().startswith("download::"): # equo current download speed thread + thread.kill() + gtkEventThread = ProcessGtkEventsThread() try: gtkEventThread.start() @@ -1240,25 +1246,25 @@ if __name__ == "__main__": pass mainApp = SpritzApplication() gtk.main() - except SystemExit, e: + killThreads() + except SystemExit: print "Quit by User" gtkEventThread.doQuit() + killThreads() sys.exit(1) except KeyboardInterrupt: - print "Quit by User" + print "Quit by User (KeyboardInterrupt)" gtkEventThread.doQuit() + killThreads() sys.exit(1) except: # catch other exception and write it to the logger. - etype = sys.exc_info()[0] - evalue = sys.exc_info()[1] - etb = traceback.extract_tb(sys.exc_info()[2]) - import entropyTools conntest = entropyTools.get_remote_data(etpConst['conntestlink']) - rc, (name,mail,description) = errorMessage( None, - _( "Exception caught" ), - _( "Spritz crashed! An unexpected error occured." ), - errmsg, - showreport = conntest + rc, (name,mail,description) = errorMessage( + None, + _( "Exception caught" ), + _( "Spritz crashed! An unexpected error occured." ), + errmsg, + showreport = conntest ) if rc == -1: error = ErrorReportInterface() @@ -1269,6 +1275,8 @@ if __name__ == "__main__": else: okDialog(None,_("Cannot submit your report. Not connected to Internet?")) gtkEventThread.doQuit() + killThreads() sys.exit(1) - gtkEventThread.doQuit() \ No newline at end of file + gtkEventThread.doQuit() + killThreads()