def mkRO(dataset="", astrotype="", args=None, reuseRO=False): global reductionObject, adccpid if reductionObject == None or reuseRO == False: adccpid = Proxies.start_adcc() reduceServer = Proxies.ReduceServer() # Playing with module, should use access function ReductionObjects.prs = Proxies.PRSProxy.get_adcc(reduce_server=reduceServer) rl = RecipeLibrary() if dataset != "": ad = AstroData(dataset) ro = rl.retrieve_reduction_object(ad) elif astrotype != "": ad = None ro = rl.retrieve_reduction_object(astrotype = astrotype) # using standard command clause supplied in RecipeLibrary module ro.register_command_clause(command_clause) rc = ReductionContext() rc.ro = ro # rc.stackFile = File("stackIndexFile", stkindfile) #if args: # rc.add_input(ad) reductionObject = ro if reuseRO == True: ro = reductionObject rc = ro.context #if args: # rc.addInputs(args) rc.update(argv) ro.init(rc) return reductionObject
def mkRO(dataset="", astrotype="", copy_input=False, args = None, argv = None): log = logutils.get_logger(__name__) rl = RecipeLibrary() if dataset != "": ad = AstroData(dataset) ro = rl.retrieve_reduction_object(ad) elif astrotype != "": ad = None ro = rl.retrieve_reduction_object(astrotype = astrotype) # using standard command clause supplied in RecipeLibrary module ro.register_command_clause(command_clause) rc = ReductionContext(adcc_mode="start_lazy") rc.ro = ro ro.context = rc reductionObject = ro # Override copy_input argument if passed in argv if argv is not None: if argv.has_key("copy_input"): copy_input = argv["copy_input"] # Add input passed in args if args: arglist = [] for arg in args: if isinstance(arg,list): for subarg in arg: if copy_input: subarg = deepcopy(subarg) arglist.append(subarg) else: if copy_input: arg = deepcopy(arg) arglist.append(arg) rc.populate_stream(arglist) rc.initialize_inputs() rc.set_context("pif") rc.update({'logindent':logutils.SW}) rc.update(argv) ro.init(rc) return reductionObject
rawrec = True if rec == "reset": co = None continue except: interactiveMode = False break else: rawrec = False try: if co == None or not interactiveMode: #then we want to keep the # create fresh context object # @@TODO:possible: see if deepcopy can do this better co = ReductionContext() #set context(s) if args.running_contexts: cxs = args.running_contexts.split(":") else: cxs = [] co.setContext(cxs) if args.rtf: co.update({"rtf":True}) #print "r739:stack index file", stkindfile # @@NAME: stackIndexFile, location for persistent stack list cache co.set_cache_file("stackIndexFile", stkindfile) co.ro = ro # @@DOC: put cachedirs in context for cachename in cachedict: co.update({cachename:cachedict[cachename]})