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:
@@ -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
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user