コード例 #1
0
ファイル: pyphant_exec.py プロジェクト: scre583/pyphant1
def main():
    import sys
    filename = sys.argv[1]
    from pyphant.core import KnowledgeManager
    km = KnowledgeManager.KnowledgeManager.getInstance()
    import os.path
    km.registerURL("file://" + os.path.realpath(filename))
    import tables
    h5 = tables.openFile(filename, 'r+')
    from pyphant.core import PyTablesPersister
    recipe = PyTablesPersister.loadRecipe(h5)
    executionOrders = PyTablesPersister.loadExecutionOrders(h5)
    h5.close()
    from pyphant.core.Emd5Src import Emd5Src
    for order in executionOrders:
        for socket, emd5 in order[0].iteritems():
            sSpec = socket.split('.')
            w = recipe.getWorker(sSpec[0])
            s = getattr(w, sSpec[-1])
            src = Emd5Src(recipe)
            src.paramEmd5.value = emd5
            if s.isFull():
                s.pullPlug()
            s.insert(src.plugGetDataContainer)
        pSpec = order[1][0].split('.')
        d = recipe.getWorker(pSpec[0])
        plug = getattr(d, pSpec[1])
        res = plug.getResult()
        res.seal()
        h5 = tables.openFile(filename, 'r+')
        PyTablesPersister.saveResult(res, h5)
        h5.close()
コード例 #2
0
def processArgs(h5):
    argv = sys.argv[1:]
    if '-h' in argv or '--help' in argv:
        help = True
    else:
        help = False
    args = filter(lambda a: not a in ['-h', '--help'], argv)
    parser = optparse.OptionParser()
    recipeFile = argv[0]
    recipe = PyTablesPersister.loadRecipe(h5)
    plugs = recipe.getAllPlugs()
    for p in plugs:
        parser.add_option(
            "",
            "--%s" % p.id,
            help="Request result of plug %s" % p.id,
            action="append_const",
            const=p,
            dest="requestedResults")
    (options, args) = parser.parse_args(filter(lambda o: 'plug' in o, argv))
    if hasattr(options,
               "requestedResults") and options.requestedResults and len(
                   options.requestedResults) > 0:
        openSockets = sum([
            recipe.getOpenSocketsForPlug(p) for p in options.requestedResults
        ], [])
        parser.values.socketMap = {}

        def optCallback(opt, opt_str, value, parser, socket):
            try:
                parser.values.socketMap[socket.id] = value
            except:
                parser.values.socketMap = {}
                parser.values.socketMap[socket.id] = value

        for s in openSockets:
            parser.add_option(
                "",
                "--%s" % s.id,
                help="Feed socket %s with data from argument." % s.id,
                action="callback",
                callback=optCallback,
                nargs=1,
                type='string',
                callback_args=(s, ))
    if help:
        args.append('-h')
    parser.add_option(
        "-n",
        "--max-orders-per-file",
        help="Maximal number of orders per file",
        type="int",
        dest="maxOrders")
    (options, args) = parser.parse_args(argv)
    # Order ::= (socketMap, resultPlug)
    return (options, args, recipe,
            [(options.socketMap, [p.id for p in options.requestedResults])])
コード例 #3
0
def processArgs(h5):
    argv = sys.argv[1:]
    if '-h' in argv or '--help' in argv:
        help = True
    else:
        help = False
    args = filter(lambda a: not a in ['-h', '--help'], argv)
    parser = optparse.OptionParser()
    recipeFile = argv[0]
    recipe = PyTablesPersister.loadRecipe(h5)
    plugs = recipe.getAllPlugs()
    for p in plugs:
        parser.add_option("",
                          "--%s" % p.id,
                          help="Request result of plug %s" % p.id,
                          action="append_const",
                          const=p,
                          dest="requestedResults")
    (options, args) = parser.parse_args(filter(lambda o: 'plug' in o, argv))
    if hasattr(options,
               "requestedResults") and options.requestedResults and len(
                   options.requestedResults) > 0:
        openSockets = sum([
            recipe.getOpenSocketsForPlug(p) for p in options.requestedResults
        ], [])
        parser.values.socketMap = {}

        def optCallback(opt, opt_str, value, parser, socket):
            try:
                parser.values.socketMap[socket.id] = value
            except:
                parser.values.socketMap = {}
                parser.values.socketMap[socket.id] = value

        for s in openSockets:
            parser.add_option("",
                              "--%s" % s.id,
                              help="Feed socket %s with data from argument." %
                              s.id,
                              action="callback",
                              callback=optCallback,
                              nargs=1,
                              type='string',
                              callback_args=(s, ))
    if help:
        args.append('-h')
    parser.add_option("-n",
                      "--max-orders-per-file",
                      help="Maximal number of orders per file",
                      type="int",
                      dest="maxOrders")
    (options, args) = parser.parse_args(argv)
    # Order ::= (socketMap, resultPlug)
    return (options, args, recipe,
            [(options.socketMap, [p.id for p in options.requestedResults])])
コード例 #4
0
ファイル: H5FileHandler.py プロジェクト: zklaus/pyphant1
 def loadRecipe(self):
     return PyTablesPersister.loadRecipe(self.handle)
コード例 #5
0
ファイル: H5FileHandler.py プロジェクト: GitEdit/pyphant1
 def loadRecipe(self):
     return PyTablesPersister.loadRecipe(self.handle)