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
# @@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]}) co.update({"cachedict":cachedict}) # rc.["storedcals"] will be the proper directory # co.restore_cal_index(calindfile) # old local stack stuff co.restore_stk_index( stkindfile ) # add input files if infiles: #co.add_input(infiles) co.populate_stream(infiles) co.set_iraf_stdout(irafstdout) co.set_iraf_stderr(irafstdout) # odl way rl.retrieve_parameters(infile[0], co, rec) if hasattr(args, "user_params"): co.user_params = args.user_params if hasattr(args, "globalParams"): for pkey in args.globalParams.keys(): co.update({pkey:args.globalParams[pkey]}) # Remove after write int works properly if (args.writeInt == True): co.update({"writeInt":True}) # Add the log level/name/mode to the global dict