From: root Date: Mon, 29 Nov 2010 17:41:56 +0000 (-0500) Subject: fix merge between onelab and princeton repositories X-Git-Tag: sface-0.1-4~4 X-Git-Url: http://git.onelab.eu/?p=sface.git;a=commitdiff_plain;h=1dbdb55c8d56e3c82047dc29a6789183f76d07a7;hp=-c fix merge between onelab and princeton repositories --- 1dbdb55c8d56e3c82047dc29a6789183f76d07a7 diff --combined sface/sfiprocess.py index 1e93b29,a9ac769..8bb6627 --- a/sface/sfiprocess.py +++ b/sface/sfiprocess.py @@@ -5,7 -5,6 +5,7 @@@ import tim from PyQt4.QtCore import * from sface.config import config +from sface.xmlrpcwindow import XmlrpcTracker def find_executable(exec_name): """find the given executable in $PATH""" @@@ -21,15 -20,12 +21,18 @@@ class SfiProcess(QObject) def __init__(self, parent=None): QObject.__init__(self, parent) + env = QProcess.systemEnvironment() + env << "PYTHONPATH=%s" % ":".join(sys.path) self.process = QProcess() + self.process.setEnvironment(env) self.connect(self.process, SIGNAL("finished(int, QProcess::ExitStatus)"), self.processFinished) + + self.xmlrpctracker = XmlrpcTracker() + # in case self.output is read by the XmlrpcTracker before any + # readyReadStandardOutput signal + self.output = '' + self.connect(self.process, SIGNAL("readyReadStandardOutput()"), self.processStandardOutput) self.connect(self.process, SIGNAL("readyReadStandardError()"), @@@ -37,9 -33,6 +40,9 @@@ def __init_command(self, args): self.args = QStringList() + if config.debug: + # this shows xmlrpc conversation, see sfi.py docs. + self.args << QString('-D') for arg in args: self.args << QString(arg) @@@ -51,15 -44,9 +54,9 @@@ return self.process.state() != QProcess.NotRunning def processStandardOutput(self): - # NOTE: The signal readyReadStandardOutput is emitted when - # the process has made new data available through its standard output channel. - # But the process is not necessarily finished. - # It's cool to have this method wo we print the stdOut live, - # but we must be carefull with self.output, used by XmlrpcTracker too. - tmpOut = self.process.readAllStandardOutput() + output = self.process.readAllStandardOutput() if config.debug: - print tmpOut - self.output += tmpOut + print output def processStandardError(self): print self.process.readAllStandardError() @@@ -140,5 -127,3 +137,5 @@@ if config.verbose: command = "%s %s" % (self.exe, self.args.join(" ")) print time.strftime('%M:%S'),"[%.3f s]"%(time.time()-self._trace),command,'Done' + self.xmlrpctracker.getAndPrint(self.output) +