def __init__(self, arg=None, load=True): """ Initialize with a single filename or a list of them, a ConfigParser, or nothing for an empty pipeline""" if arg is None: arg = list() if isinstance(arg, config.Inifile): self.options = arg else: self.options = config.Inifile(arg) #This will be set later self.root_directory = self.options.get("runtime", "root", "cosmosis_none_signifier") if self.root_directory=="cosmosis_none_signifier": self.root_directory=None self.quiet = self.options.getboolean(PIPELINE_INI_SECTION, "quiet", True) self.debug = self.options.getboolean(PIPELINE_INI_SECTION, "debug", False) self.timing = self.options.getboolean(PIPELINE_INI_SECTION, "timing", False) shortcut = self.options.get(PIPELINE_INI_SECTION, "shortcut", "") if shortcut=="": shortcut=None # initialize modules self.modules = [] if load and PIPELINE_INI_SECTION in self.options.sections(): module_list = self.options.get(PIPELINE_INI_SECTION, "modules", "").split() for module_name in module_list: # identify module file filename = self.find_module_file( self.options.get(module_name, "file")) # identify relevant functions setup_function = self.options.get(module_name, "setup", "setup") exec_function = self.options.get(module_name, "function", "execute") cleanup_function = self.options.get(module_name, "cleanup", "cleanup") self.modules.append(module.Module(module_name, filename, setup_function, exec_function, cleanup_function, self.root_directory)) self.shortcut_module=0 self.shortcut_data=None if shortcut is not None: try: index = module_list.index(shortcut) except ValueError: raise ValueError("You tried to set a shortcut in " "the pipeline but I do not know module %s"%shortcut) if index == 0: print "You set a shortcut in the pipeline but it was the first module." print "It will make no difference." self.shortcut_module = index
def load_priors(cls, prior_files): priors = {} for f in prior_files: ini = config.Inifile(f) for option, value in ini: if option in priors: raise ValueError("Duplicate prior identified") priors[option] = cls.parse_prior(value) return priors
def load_parameters(value_file, priors_files=None, override=None): values_ini = config.Inifile(value_file) if priors_files: priors = prior.Prior.load_priors(priors_files) else: priors = {} parameters = [] for (section, name), value in values_ini: #override if available if (override is not None) and (section, name) in override: value = override[(section, name)] # parse value line start, limits = Parameter.parse_parameter(value) # check for prior pri = priors.get((section, name), None) parameters.append(Parameter(section, name, start, limits, pri)) return parameters