def from_xml_2(cls, ui_holder, xml_root, prefix=None): mi = module_xpath(xml_root, '//workflow/skymaker', False) apply_mock_image = mi is not None params = {'mock_image-apply_mock_image': apply_mock_image} if apply_mock_image: # Find the images and setup the management form. imgs = list(module_xpath_iterate(xml_root, '//skymaker/images/item', False)) params[prefix + '-TOTAL_FORMS'] = len(imgs) params[prefix + '-INITIAL_FORMS'] = len(imgs) params[prefix + '-MAX_NUM_FORMS'] = 1000 # Process each image. for ii, img in enumerate(imgs): pre = prefix + '-' + str(ii) + '-' for field in img: tag = strip_namespace(field.tag) if tag == 'mag_field': id, ext = field.text.rsplit('_', 1) filter = datasets.band_pass_filter_find_from_xml(id) if filter is not None: params[pre + tag] = str(filter.id) + '_' + ext else: params[pre + tag] = field.text if field.text != 'None' else '' # Create the class. return cls(ui_holder, params, prefix=prefix)
def from_xml_2(cls, ui_holder, xml_root, prefix=None): sed = module_xpath(xml_root, '//workflow/sed', text=False) apply_sed = sed is not None params = {prefix+'-apply_sed': apply_sed} if apply_sed: sspm_name = module_xpath(xml_root, '//sed/single-stellar-population-model') sspm = datasets.stellar_model_find_from_xml(sspm_name) if sspm is not None: params.update({prefix+'-single_stellar_population_model': sspm.id}) bp_filters = [] for filter_item in module_xpath_iterate(xml_root, '//filter/bandpass-filters/item', text=False): filter_id = filter_item.text filter_extension_list = filter_item.get('selected').split(',') filter = datasets.band_pass_filter_find_from_xml(filter_id) if filter is not None: for filter_extension in filter_extension_list: bp_filters.append(str(filter.id) + '_' + filter_extension) if len(bp_filters) > 0: params.update({prefix+'-band_pass_filters': bp_filters}) dust = module_xpath(xml_root, '//dust/model') apply_dust = dust is not None if apply_dust: dust_model = datasets.dust_model_find_from_xml(dust) if dust_model is not None: params.update({prefix+'-apply_dust': True}) params.update({prefix+'-select_dust_model': dust_model.id}) else: params.update({prefix+'-apply_dust': False}) else: params.update({prefix+'-apply_dust': False}) return cls(ui_holder, params, prefix=prefix)