Entropy/Spritz:

- some code cleanup and speed optimization

git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2031 cd1c1023-2f26-0410-ae45-c471fc1f0318
This commit is contained in:
lxnay
2008-05-28 20:06:11 +00:00
parent ccf0e063ee
commit 3cf3695ea5
2 changed files with 26 additions and 59 deletions
-41
View File
@@ -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]))
+26 -18
View File
@@ -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()
gtkEventThread.doQuit()
killThreads()