def _make_elements(score_names, table): result = {} for score_file, name in score_names: resolved_file = CommandFile.resolve('score', score_file) if not resolved_file: LOGGER.error('No such score file: "%s".', CommandFile.base_file('score', score_file)) continue elements = Yaml.read(resolved_file) description = {'elements': elements, 'type': 'score'} parts = resolved_file.split('/') final_file = '/'.join([parts[1]] + parts[3:]) try: element = Root.Root(description, final_file) except Exception: LOGGER.error("\nError when reading score file %s", score_file, exc_info=1) continue name = os.path.splitext(name or score_file)[0] name = UniqueName.unique_name(name, table) result[name] = element element.name = name return result
def __init__(self, filename=''): super(PersistentDict, self).__init__() self._filename = filename if filename: original = Yaml.read(self._filename) if original: super(PersistentDict, self).update(original[0])
def make_root(score_names, table): result = {} for score_file, name in score_names: resolved_file = DataFile.resolve('score', score_file) if not resolved_file: LOGGER.error('No such score file: "%s".', DataFile.base_file('score', score_file)) continue elements = Yaml.read(resolved_file) description = {'elements': elements, 'type': 'score'} parts = resolved_file.split('/') final_file = '/'.join([parts[1]] + parts[3:]) try: element = Root(description, final_file) except Exception: LOGGER.error("\nError when reading score file %s", score_file) continue name = os.path.splitext(name or score_file)[0] name = UniqueName.unique_name(name, table) result[name] = element element.name = name return result
def merge_config(): config = Merge.merge(*Yaml.read(CommandFile.config_file('default'))) assert config, 'Unable to read default config file' _set_project_path() config = _merge_file_config(config) merge_assignments(config, Args.ARGS) return config
def load_resolve(*path): f = resolve(*path) if f: data = Yaml.read(f) if data: return f, data raise Exception("Couldn't read Yaml from file %s" % os.path.join(*path))
def __init__(self, name, suffix): if suffix.startswith('.'): self.suffix = suffix else: self.suffix = '.' + suffix name_file = CommandFile.clean('cache', name) self.cachedir = os.path.abspath(os.path.join(*name_file)) MakeDirs.makedirs(self.cachedir) self.manifest_file = os.path.join(self.cachedir, MANIFEST_NAME) self.manifest = Merge.merge(*Yaml.read(self.manifest_file))
def __init__(self, name, suffix): if suffix.startswith('.'): self.suffix = suffix else: self.suffix = '.' + suffix name_file = DataFile.clean('cache', name) self.cachedir = os.path.abspath(os.path.join(*name_file)) MakeDirs.makedirs(self.cachedir) self.manifest_file = os.path.join(self.cachedir, MANIFEST_NAME) self.manifest = Merge.merge(*Yaml.read(self.manifest_file))
def _read_file_settings(self): self.file_settings = [] base_settings = None for f in reversed(DataFile.expand_settings()): settings = Yaml.read(f, 'settings') for c in settings: if base_settings: base_settings = Merge.merge_for_settings(base_settings, c) else: base_settings = copy.deepcopy(c) while len(settings) < 3: settings.append({}) self.file_settings.append([f, settings])
def _read_file_configs(self): self.file_configs = [] base_config = None for f in reversed(CommandFile.expand('config.yml')): configs = Yaml.read(f, 'config') for c in configs: if base_config: base_config = Merge.merge_for_config(base_config, c) else: base_config = copy.deepcopy(c) while len(configs) < 3: configs.append({}) self.file_configs.append([f, configs])
def _merge_file_config(config): for f in list(reversed(CommandFile.expand('config.yml')))[1:]: try: file_configs = Yaml.read(f) except Exception as e: _add_exception_suffix(e, 'while reading config file', f) raise for cfg in file_configs: try: config = Merge.merge_for_config(config, cfg) except Exception as e: _add_exception_suffix(e, ' while merging config file', f) raise return config
def make_root(score_names, table): result = {} for score_file, name in score_names: resolved_file = DataFile.resolve("score", score_file) if not resolved_file: LOGGER.error('No such score file: "%s".', DataFile.base_file("score", score_file)) continue elements = Yaml.read(resolved_file) description = {"elements": elements, "type": "score"} parts = resolved_file.split("/") final_file = "/".join([parts[1]] + parts[3:]) try: element = Root(description, final_file) except Exception: LOGGER.error("\nError when reading score file %s", score_file) continue name = os.path.splitext(name or score_file)[0] name = UniqueName.unique_name(name, table) result[name] = element element.name = name return result
def read_config(scope='default'): return Yaml.read(config_file(scope))
def settings(_, scope, cfg): f = DataFile.settings_file(scope) settings = Yaml.read(f) + [cfg] Yaml.write(f, Merge.merge(*settings)) # TODO: needs to propagate! LOGGER.info('Changing settings for %s', scope)
def config(_, scope, cfg): f = CommandFile.config_file(scope) configs = Yaml.read(f) + [cfg] Yaml.write(f, Merge.merge(*configs)) # TODO: needs to propagate! LOGGER.info('Changing configuration for %s', scope)