if --printOnly option is given, no folders will be created, only their names will be printed on the screen xparams can be given in format name1=value1,name2=value2,... value can be either a single value, or LIST (MIND (default) STATEMENTS IN LISTS !!! ) """ opts,args=gnu_getopt(sys.argv[1:],'',['printOnly']) if len(args)<1: print usage; quit(); # print 'Opening chain prototype file '+sys.argv[1]+' ... ' # project_name = args[0]; chain=Chain(args[0]); # methodID = args[2]; project_name = chain.project; methodID = chain.runMethod; printOnly = ('--printOnly','') in opts; # print 'done' root= os.getenv('MOLDB_PROJECTS') + '/' + project_name + '/Methods'; # methodID = sys.argv[3] if len(sys.argv)>2 else prototype.runMethod; d=chain.getMethodsDict(); prototype = d[methodID];
def createFolders_callback(data): params = dict(data); root = params.pop('moldb_root'); prototype = params.pop('moldb_prototype'); printOnly = params.pop('moldb_printOnly'); project_name = params.pop('moldb_projectName'); visited={} m = buildImplementation(params,prototype,visited); meth = []; for pid in sorted(visited.keys()): meth.append(visited[pid]); folder = root + '/' + m.getRef(); relroot = '$MOLDB_PROJECTS/'+project_name+'/Methods'; relfolder = relroot + '/' + m.getRef(); print folder; if printOnly: return # mkdir mkdir_p(folder); #chain.implementation chain = Chain(); chain.fromMethods(meth,m.getHash(),project_name,False); f=open(folder + '/chain.imp','w'); f.write( chain.toString() ); f.close(); #PARAMETERS paramStr = 'PROJECT='+project_name+'\n'; paramStr += 'FOLDER='+relfolder+'\n' paramStr += 'PROTOTYPES=$MOLDB_PROJECTS/'+project_name+'/Prototypes\n'; paramStr += paramsString(params); f=open(folder+'/PARAMETERS','w'); f.write(paramStr); f.close(); os.system('chmod +x '+folder+ '/PARAMETERS'); #DEPENDENCIES depStr = dependenciesString(m.dependencies,relroot); f=open(folder+'/DEPENDENCIES','w'); f.write(depStr); f.close(); os.system('chmod +x '+ folder +'/DEPENDENCIES'); #Scripts strPrm = '#!/bin/bash\n' strPrm += '# METHOD '+m.name+'\n'; strPrm += '# ID' + str(m.getHash())+'\n'; strPrm += '# --- Dependencies --- \n' strPrm += '. ./DEPENDENCIES\n' # strPrm += dependenciesString(m.dependencies,root); strPrm += '# --- Method Parameters ---\n' strPrm += '. ./PARAMETERS\n' # strPrm += 'PROJECT='+root+'\n' # strPrm += 'FOLDER=' + folder +'\n' strPrm += paramsString(params); strPrm += '\n # ---- Script ----\n' for script in m.scripts: f=open(folder+'/'+script.name,'w'); f.write(strPrm+script.text); f.close(); os.system('chmod +x '+folder+'/'+script.name);
opts, args = gnu_getopt(sys.argv[1:], '') if len(args) < 4: sys.stderr.write(usage) quit() # Project=args[0]; chain_file = args[0] # methodID=args[2]; rows = args[1].split(',') cols = args[2].split(',') fname = args[3] ch = Chain(chain_file) Project = ch.project methodID = ch.runMethod d = ch.getMethodsDict() method = d[methodID] if len(args) >= 5: parseXparam(args[4], method) rows_iterators = [] cols_iterators = [] for k in rows: rows_iterators.append(method.iterators[k])
--printMethod : prints the generated method ( DUBUG ONLY ) --noRoot : print relative paths (w.r.t. Methods folder of the current project ) """ if __name__ == '__main__': opts,args=gnu_getopt(sys.argv[1:],'p:',['printMethod','noRefs','addRoot=','--project','noRoot']); if len(args)<1: print usage quit() ch = Chain(args[0]); methodID = ch.runMethod; # methodID = args[1]; methodsDict = ch.getMethodsDict(); # print ch method = methodsDict[methodID]; if len(args)>1: parseXparam(args[1],method,ch); if ('--printMethod','') in opts: print method
-p, --proc=Npar : number of parallel processes (processors) Npar scripts will be generated (+1 main script which runs all others) """ if __name__ == '__main__': if len(sys.argv) < 3: print usage quit() opts, args = gnu_getopt(sys.argv[1:], 'o:x:p:', ['xparam=', 'proc=']) # project_name = args[0]; chain_fname = args[0] chain_name = chain_fname.split('.')[0] ch = Chain(chain_fname) methodsDict = ch.getMethodsDict() project_name = ch.project methodID = ch.runMethod # methodID = args[2]; prototype = methodsDict[methodID] script = args[1] script_words = script.split() output = project_name + '_' + chain_name + '_' + script_words[0] + '.sh' xparam_arg = False xparam_arg_val = None
def createFolders_callback(data): params = dict(data) root = params.pop('moldb_root') prototype = params.pop('moldb_prototype') printOnly = params.pop('moldb_printOnly') project_name = params.pop('moldb_projectName') visited = {} m = buildImplementation(params, prototype, visited) meth = [] for pid in sorted(visited.keys()): meth.append(visited[pid]) folder = root + '/' + m.getRef() relroot = '$MOLDB_PROJECTS/' + project_name + '/Methods' relfolder = relroot + '/' + m.getRef() print folder if printOnly: return # mkdir mkdir_p(folder) #chain.implementation chain = Chain() chain.fromMethods(meth, m.getHash(), project_name, False) f = open(folder + '/chain.imp', 'w') f.write(chain.toString()) f.close() #PARAMETERS paramStr = 'PROJECT=' + project_name + '\n' paramStr += 'FOLDER=' + relfolder + '\n' paramStr += 'PROTOTYPES=$MOLDB_PROJECTS/' + project_name + '/Prototypes\n' paramStr += paramsString(params) f = open(folder + '/PARAMETERS', 'w') f.write(paramStr) f.close() os.system('chmod +x ' + folder + '/PARAMETERS') #DEPENDENCIES depStr = dependenciesString(m.dependencies, relroot) f = open(folder + '/DEPENDENCIES', 'w') f.write(depStr) f.close() os.system('chmod +x ' + folder + '/DEPENDENCIES') #Scripts strPrm = '#!/bin/bash\n' strPrm += '# METHOD ' + m.name + '\n' strPrm += '# ID' + str(m.getHash()) + '\n' strPrm += '# --- Dependencies --- \n' strPrm += '. ./DEPENDENCIES\n' # strPrm += dependenciesString(m.dependencies,root); strPrm += '# --- Method Parameters ---\n' strPrm += '. ./PARAMETERS\n' # strPrm += 'PROJECT='+root+'\n' # strPrm += 'FOLDER=' + folder +'\n' strPrm += paramsString(params) strPrm += '\n # ---- Script ----\n' for script in m.scripts: f = open(folder + '/' + script.name, 'w') f.write(strPrm + script.text) f.close() os.system('chmod +x ' + folder + '/' + script.name)
if --printOnly option is given, no folders will be created, only their names will be printed on the screen xparams can be given in format name1=value1,name2=value2,... value can be either a single value, or LIST (MIND (default) STATEMENTS IN LISTS !!! ) """ opts, args = gnu_getopt(sys.argv[1:], '', ['printOnly']) if len(args) < 1: print usage quit() # print 'Opening chain prototype file '+sys.argv[1]+' ... ' # project_name = args[0]; chain = Chain(args[0]) # methodID = args[2]; project_name = chain.project methodID = chain.runMethod printOnly = ('--printOnly', '') in opts # print 'done' root = os.getenv('MOLDB_PROJECTS') + '/' + project_name + '/Methods' # methodID = sys.argv[3] if len(sys.argv)>2 else prototype.runMethod; d = chain.getMethodsDict() prototype = d[methodID] if len(args) > 1: