class ConfigLoader(object): def __init__(self, path): self.config_path = path self.config_files=[] for fn in CONFIG_FILE_NAMES: self.test_config_file_read(path + os.path.sep + fn) self.config_files.append(path + os.path.sep + fn) self._load() def _load(self): self.config_class_loader = Loader(CONFIG_CLASS_NAME, CONFIG_CLASS_NAME, self.config_files) self.config_class = self.config_class_loader.get_class() setattr(self.config_class,'CONFIG_SRC_DIR', self.config_path) def conf_CONF(self): conf = self.config_class() return conf def test_config_file_read(self, config_file): try: open(config_file) except Exception as e: logger.error("expected config file names are: " + ', '.join(CONFIG_FILE_NAMES)) raise ConfigFileNotReadable(e.errno, e.strerror, e.filename) # should be done by callee
def _load(self): self.config_class_loader = Loader(CONFIG_CLASS_NAME, CONFIG_CLASS_NAME, self.config_files) self.config_class = self.config_class_loader.get_class() setattr(self.config_class,'CONFIG_SRC_DIR', self.config_path)