Example #1
0
def transformXML(inputFile, outputFile, stylesheet="default"):

    xmlFile = urllib.urlopen(inputFile)

    tfname = os.path.join(tmpDir, 'output.xml')
    tf = open(tfname, 'w')
    libfinxml.finishXMLFile(xmlFile, tf)
    tf.close()
    if stylesheet == "default":
        sys.stderr.write(xsltCommand % {'xsltproc':xsltproc,
                                        'output':outputFile,
                                        'style':'',
                                        'input':tfname })
        process = subProcess.subProcess(xsltCommand % 
                                         {'xsltproc':xsltproc,
                                          'output':outputFile,
                                          'style':'',
                                          'input':tfname })
        done = process.read(300) # 1 minute time out
        if done == 1:
            # we timed out.
            process.kill()
            errdata = 'xsltproc timeout'
        else:
            # we finished (for better or worse) & don't want to retry.
            outdata = process.outdata
            errdata = process.errdata
    process.cleanup()
    if process.sts != 0 or stylesheet != "default":
        # we have failed on the document's internal stylesheet, let's try again with the default:
        stylesheet = defaultStylesheet
        process = subProcess.subProcess(xsltCommand % 
                                         {'xsltproc':xsltproc,
                                          'output':outputFile,
                                          'style':stylesheet,
                                          'input':tfname })
        done = process.read(300) # 1 minute time out
        if done == 1:
            # we timed out.
            process.kill()
            errdata = 'xsltproc timeout'
        else:
            # we finished (for better or worse) & don't want to retry.
            outdata = process.outdata
            errdata = process.errdata
        process.cleanup()
        if process.sts != 0:
            raise OSError(errdata)
        sys.stderr.write(xsltCommand % {'xsltproc':xsltproc,
                                        'output':outputFile,
                                        'style':stylesheet,
                                        'input':tfname })
        sys.stderr.write(outdata)
        sys.stderr.write(errdata)
        os.unlink(tfname)
        os.rmdir(tmpDir)
Example #2
0
def main():
    reactRule1 = {(1, 1): -1, (2, 1): -1}
    reactRule2 = {(1, 1): 1, (1, 2): 1.5}
    subReactor1 = subReactor(2, 1, "first.xml", "second.xml", reactRule1)
    subReactor2 = subReactor(1, 2, "second.xml", "first.xml", reactRule2)

    subProcess1 = subProcess("firstEnvironment.xml", [subReactor1])
    subProcess2 = subProcess("secondEnvironment.xml", [subReactor2])

    master = masterReactor([subProcess1, subProcess2])
    master.run(3, 2)
Example #3
0
def main():
    reactRule1 = {(1,  1): -1, (2, 1): -1}
    reactRule2 = {(1, 1): 1, (1, 2): 1.5}
    subReactor1 = subReactor(2, 1, "first.xml", "second.xml", reactRule1)
    subReactor2 = subReactor(1, 2, "second.xml", "first.xml", reactRule2)

    subProcess1 = subProcess("firstEnvironment.xml", [subReactor1])
    subProcess2 = subProcess("secondEnvironment.xml", [subReactor2])

    master = masterReactor([subProcess1, subProcess2])
    master.run(3, 2)
Example #4
0
import subProcess

print "Starting process.."
process = subProcess.subProcess( "python dummy-program.py" )
process.read()
print "Process done."

print
print "[ Out ]"
print process.outdata

print
print "[ Err ]"
print process.errdata
Example #5
0
def transformXML(inputFile, outputFile, stylesheet="default"):

    xmlFile = urllib.urlopen(inputFile)

    tfname = os.path.join(tmpDir, 'output.xml')
    tf = open(tfname, 'w')
    libfinxml.finishXMLFile(xmlFile, tf)
    tf.close()
    if stylesheet == "default":
        sys.stderr.write(
            xsltCommand % {
                'xsltproc': xsltproc,
                'output': outputFile,
                'style': '',
                'input': tfname
            })
        process = subProcess.subProcess(
            xsltCommand % {
                'xsltproc': xsltproc,
                'output': outputFile,
                'style': '',
                'input': tfname
            })
        done = process.read(300)  # 1 minute time out
        if done == 1:
            # we timed out.
            process.kill()
            errdata = 'xsltproc timeout'
        else:
            # we finished (for better or worse) & don't want to retry.
            outdata = process.outdata
            errdata = process.errdata
    process.cleanup()
    if process.sts != 0 or stylesheet != "default":
        # we have failed on the document's internal stylesheet, let's try again with the default:
        stylesheet = defaultStylesheet
        process = subProcess.subProcess(
            xsltCommand % {
                'xsltproc': xsltproc,
                'output': outputFile,
                'style': stylesheet,
                'input': tfname
            })
        done = process.read(300)  # 1 minute time out
        if done == 1:
            # we timed out.
            process.kill()
            errdata = 'xsltproc timeout'
        else:
            # we finished (for better or worse) & don't want to retry.
            outdata = process.outdata
            errdata = process.errdata
        process.cleanup()
        if process.sts != 0:
            raise OSError(errdata)
        sys.stderr.write(
            xsltCommand % {
                'xsltproc': xsltproc,
                'output': outputFile,
                'style': stylesheet,
                'input': tfname
            })
        sys.stderr.write(outdata)
        sys.stderr.write(errdata)
        os.unlink(tfname)
        os.rmdir(tmpDir)
Example #6
0
    com = myunpack(comray)

if (myid == 0):
    for ic in range(nstart, nc + 1):
        # get real command string
        fname = sys.argv[ic]
        if (nstart == 2):
            p = fname.rfind(".")
            if (p > 0):
                fname = fname[0:p]
        rc = replace(com, "DUMMY", fname)
        # do command
        print "task", (
            ic - nstart) + 1, " started at", datetime.today(), " on ", fname
        st = datetime.today()
        process = subProcess.subProcess(rc)
        process.read()
        handle(st, ic, rc, process.outdata, process.errdata)
        del (process)
        # wait for ready from process 1
        i = mpi_recv(1, MPI_INT, id_p1, my_tag, MPI_COMM_WORLD)
        # send filename to process 1
        fnameray = mypack(fname)
        thelen = len(fnameray)
        mpi_send(fnameray, thelen, MPI_INT, id_p1, my_tag, MPI_COMM_WORLD)
else:
    for ic in range(nstart, nc + 1):
        #send ready to previous process
        i = 1
        mpi_send(i, 1, MPI_INT, id_m1, my_tag, MPI_COMM_WORLD)
        #get filename from previous process
Example #7
0
errors = 0
outfile = open("%s/results%04d" % (startDir, myId), "w")
for file in files:
    outfile.write("*commands for file '%s'\n" % file)
    if output:
        print "[%d] commands for file '%s'" % (myId, file)
    for i in range(0, numStrips):
        loc = file.rfind('.')
        if loc != -1:
            file = file[:loc]
        else:
            break
    for line in lines:
        # only overwrites our temporary copy, not the line in the list
        line = line.replace(dummyString, file)
        process = subProcess.subProcess(line)
        process.read()
        procError = len(process.errdata)
        string = "CMD:\n%s" % line
        string += "\nOUT:\n%s" % process.outdata
        if procError > 0:
            if output:
                print "[%d] %s: FAILURE" % (myId, line)
            string += "\nERR:\n%s" % process.errdata
            errors += 1
        else:
            if output:
                print "[%d] %s: SUCCESS" % (myId, line)
        outfile.write(string)
        process.cleanup()
outfile.close()
Example #8
0
class Player:
    def __init__(self, app, gst_player=None):
        self._app = app
        self._gst_player = gst_player
        self.cmdline = 'totem --enqueue'
        if utils.RUNNING_SUGAR:
            import sugar.env
            home = os.path.join(sugar.env.get_profile_path(), 'penguintv')
        else:
            home = os.path.join(os.getenv('HOME'), ".penguintv")
        try:
            os.stat(os.path.join(home, 'media'))
        except:
            try:
                os.mkdir(os.path.join(home, 'media'))
            except:
                raise NoDir, "error creating " + os.path.join(home, '/media')
        self.media_dir = os.path.join(home, 'media')
        try:
            playlist = open(
                os.path.join(self.media_dir, "recovery_playlist.m3u"), "w")
            playlist.write("#EXTM3U\n")
            playlist.close()
        except:
            print "Warning: couldn't append to playlist file", os.path.join(
                self.media_dir, "recovery_playlist.m3u")
        pass

    def using_internal_player(self):
        return self._gst_player != None

    def internal_player_exposed(self):
        return self._gst_player.is_exposed()

    def connect_internal(self, signal, func):
        assert self.using_internal_player()
        self._gst_player.connect(signal, func)

    def control_internal(self, action):
        assert self.using_internal_player()

        def _expose_check_generator(q_action):
            """Wait for player to become exposed, then play"""
            for i in range(0, 10):
                if self.internal_player_exposed():
                    self.control_internal(q_action)
                    yield True
                    break
                yield False
            yield False

        if self.using_internal_player():
            if not self.internal_player_exposed():
                self._app.main_window.notebook_select_page(N_PLAYER)
                gobject.timeout_add(200, _expose_check_generator(action).next)
                return

        if action.lower() == "play":
            self._gst_player.play()
        elif action.lower() == "pause":
            self._gst_player.pause()
        elif action.lower() == "next":
            self._gst_player.next()
        elif action.lower() in ("prev", "previous"):
            self._gst_player.prev()
        elif action.lower() == "playpause":
            self._gst_player.play_pause_toggle()
        elif action.lower() == "stop":
            self._gst_player.stop()
        else:
            print "unhandled action:", action

    def get_queue(self):
        assert self.using_internal_player()
        return self._gst_player.get_queue()

    def unqueue(self, userdata):
        if self.using_internal_player():
            self._gst_player.unqueue(userdata=userdata)

    def play(self,
             f,
             title=None,
             userdata=None,
             force_external=False,
             context=None):
        self.play_list([[f, title, userdata]], force_external, context)

    def play_list(self, files, force_external=False, context=None):
        cmdline = self.cmdline
        try:
            playlist = open(
                os.path.join(self.media_dir, "recovery_playlist.m3u"), "a")
            playlist.write("#" * 20 + "\n")
        except Exception, e:
            print "Warning: couldn't append to playlist file, ", str(
                e), os.path.join(self.media_dir, "recovery_playlist.m3u")
            return

        players = {}

        for f, t, u in files:
            if os.path.isdir(f):
                for root, dirs, filelist in os.walk(f):
                    for filen in filelist:
                        next = os.path.join(f, filen)
                        if os.path.isfile(next) and utils.is_known_media(
                                filen):
                            head, filename = os.path.split(next)
                            dated_dir = os.path.split(head)[1]
                            playlist.write(
                                os.path.join(dated_dir, filename) + "\n")

                            player = utils.get_play_command_for(filen)
                            if players.has_key(player):
                                players[player].append(filen)
                            else:
                                players[player] = [filen]

            elif os.path.isfile(f):
                head, filename = os.path.split(f)
                dated_dir = os.path.split(head)[1]
                playlist.write(os.path.join(dated_dir, filename) + "\n")
                player = utils.get_play_command_for(f)
                if players.has_key(player):
                    players[player].append(f)
                else:
                    players[player] = [f]
        playlist.close()

        if self._gst_player is not None and not force_external:
            for f, t, u in files:
                self._gst_player.queue_file(f, name=t, userdata=u)
        else:
            if utils.RUNNING_HILDON:
                import osso.rpc
                rpc_handler = osso.rpc.Rpc(context)
                for filename, t, u in files:
                    uri = str("file://" + filename)
                    logging.debug("Trying to launch media player: %s" % uri)
                    rpc_handler.rpc_run_with_defaults('mediaplayer',
                                                      'mime_open', (uri, ))
            else:
                for player in players.keys():
                    cmdline = player + " "
                    for filename in players[player]:
                        cmdline += '"%s" ' % filename
                    cmdline += "&"
                    # logging.debug("running: "+str(cmdline))
                    subProcess.subProcess(cmdline)