diff --git a/CEP/Pipeline/recipes/sip/bin/genericpipeline.py b/CEP/Pipeline/recipes/sip/bin/genericpipeline.py index 84159b4c4a0253aee930c12b2bc1e54d1505c68b..6fea4347c76af46d08446b23ebfadc2ec4e6549d 100755 --- a/CEP/Pipeline/recipes/sip/bin/genericpipeline.py +++ b/CEP/Pipeline/recipes/sip/bin/genericpipeline.py @@ -193,8 +193,6 @@ class GenericPipeline(control): typeval = step.getString('type') except: typeval = '' - #self._construct_cmdline(inputargs, step, resultdicts) - if stepname in step_parset_obj: self._construct_step_parset(inputdict, step_parset_obj[stepname], @@ -206,14 +204,13 @@ class GenericPipeline(control): if self.task_definitions.get(typeval, 'recipe') == 'executable_args': inputdict['stepname'] = stepname - self._construct_cmdline2(inputargs, step, resultdicts) + self._construct_cmdline(inputargs, step, resultdicts) if stepname in step_parset_files: inputdict['parset'] = step_parset_files[stepname] self._construct_input(inputdict, step, resultdicts) - # hack, popping 'type' is necessary, why? because you deleted kind already in parsets try: inputdict.pop('type') @@ -377,7 +374,7 @@ class GenericPipeline(control): # \hack self._replace_output_keyword(inoutdict, argsparset, argsparset.keys(), resdicts) - def _construct_cmdline2(self, inoutargs, controlparset, resdicts): + def _construct_cmdline(self, inoutargs, controlparset, resdicts): inoutdict = {} argsparset = controlparset.makeSubset(controlparset.fullModuleName('cmdline') + '.') self._replace_output_keyword(inoutdict, argsparset, argsparset.keys(), resdicts) @@ -387,19 +384,6 @@ class GenericPipeline(control): if 'cmdline' in k: controlparset.remove(k) - def _construct_cmdline(self, inoutargs, controlparset, resdicts): - argsparset = controlparset.makeSubset(controlparset.fullModuleName('cmdline') + '.') - for k in argsparset.keys(): - if argsparset.getString(k).__contains__('.output.'): - step, outvar = argsparset.getString(k).split('.output.') - inoutargs.append(resdicts[step][outvar]) - else: - inoutargs.append(argsparset.getString(k)) - try: - controlparset.remove('cmdline.inmap') - except: - pass - def _construct_steps(self, step_name_list, step_control_dict, step_parset_files, step_parset_obj, parset_dir): step_list_copy = (copy.deepcopy(step_name_list)) counter = 0 @@ -480,9 +464,14 @@ class GenericPipeline(control): parsetdict = {} for orig in self.parset.keys: for item in tmp_keys: - if (stepname + '.') in orig and ('argument.'+item in orig and not 'argument.'+item+'.' in orig): - ordered_keys.append(item) - continue + if not str(orig).startswith('#'): + if (stepname + '.') in orig and ('argument.'+item in orig and not 'argument.'+item+'.' in orig): + ordered_keys.append(item) + continue + # add keys from parset files that were not in the original list + for item in argsparset.keys(): + if not item in ordered_keys: + ordered_keys.append(item) additional = self._replace_output_keyword(parsetdict, argsparset, ordered_keys, resdicts) for k in argsparset.keys(): argsparset.replace(k, parsetdict[k]) diff --git a/CEP/Pipeline/recipes/sip/master/executable_args.py b/CEP/Pipeline/recipes/sip/master/executable_args.py index 8b6839767153a4da0619caa07c8cbbe429f7217b..5093d204604afc915f6808cc6600336e2ebab197 100644 --- a/CEP/Pipeline/recipes/sip/master/executable_args.py +++ b/CEP/Pipeline/recipes/sip/master/executable_args.py @@ -275,8 +275,8 @@ class executable_args(BaseRecipe, RemoteCommandRecipeMixIn): parsetdict[k] = str(parset[k]) # construct multiple input data - if not self.inputs['inputkeys'] and self.inputs['inputkey']: - self.inputs['inputkeys'].append(self.inputs['inputkey']) + if self.inputs['inputkey'] and not self.inputs['inputkey'] in self.inputs['inputkeys']: + self.inputs['inputkeys'].insert(0, self.inputs['inputkey']) if not self.inputs['outputkeys'] and self.inputs['outputkey']: self.inputs['outputkeys'].append(self.inputs['outputkey'])