def helpFuncs(): from pprint import pprint rpcServer = RPCServer.getInstance() methods = listFuncs() for mName in listFuncs(): rpcServer.getBatchServer().system.methodHelp(mName) methodsHelp = zip(methods, rpcServer.getBatchServer()()) RPCServer.getInstance().resetBatch() pprint(dict(methodsHelp))
def runBatch(reset = True): res = RPCServer.getInstance().getBatchServer()() if reset: RPCServer.getInstance().resetBatch() endBatch() resultsList = [] for r in res: if isinstance(r, str): tpe = r.split("-",1)[0] resInstance = eval( "%s(id='%s')" % (tpe, r) ) resultsList.append(resInstance) else: resultsList.append(r) return resultsList
def initializeClient(configFileName = 'config.cfg'): global global_config global clientId global createCount global gcThreshold createCount = 0 global_config = Configuration(configFileName) rpcServer = RPCServer.getInstance( global_config.RPCServerURL ) clientId = rpcServer.getServer()._requestClientId() gcThreshold = global_config.GCThreshold global filteredMethods filteredMethods = filter(lambda mName: mName[:7] != 'system.' and mName[0] != '_', rpcServer.getInteractiveServer().system.listMethods()) proxyFuncsSrc = """def %(methodName)s(*args): \"\"\"%(methodHelp)s\"\"\" global createCount global gcThreshold mName = '%(methodName)s' newArgs = [clientId] rpcServer = RPCServer.getInstance() for arg in args: if type(arg) in ( type(()), type([]) ): newArgs.append( __elemsToStr(arg) ) elif isinstance(arg, Variable): newArgs.append(arg.getId()) else: newArgs.append(arg) try: result = rpcServer.getServer().%(methodName)s(*newArgs) except: raise #result's first chars before the "-" indicate the type of the result #UNLESS the result is an string repr of the number, in which case #it is not processed if isinstance(result, str): tpe = result.split("-",1)[0] if tpe.isalpha(): strToEval = "%%s(id='%%s')" %% (tpe, result) result = eval(strToEval) if mName.endswith("Create"): createCount += 1 if createCount > gcThreshold: runGC(result.getId()) createCount = 0 return result """ for mName in filteredMethods: rpcServer.getBatchServer().system.methodHelp(mName) methodsHelp = zip(filteredMethods, rpcServer.getBatchServer()()) for methodAndHelpPair in methodsHelp: exec proxyFuncsSrc % \ {'methodName': methodAndHelpPair[0], 'methodHelp': methodAndHelpPair[1] } in globals() return globals()
def endBatch(): RPCServer.getInstance().setBatch(False)
def runBatch(reset = True): res = RPCServer.getInstance().getBatchServer()() if reset: RPCServer.getInstance().resetBatch() return [x for x in res]
def beginBatch(): RPCServer.getInstance().setBatch(True)