コード例 #1
0
ファイル: ScoreMaster.py プロジェクト: florian-f/echomesh
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
コード例 #2
0
 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])
コード例 #3
0
ファイル: PersistentDict.py プロジェクト: dasbavaria/echomesh
 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])
コード例 #4
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
コード例 #5
0
ファイル: MergeConfig.py プロジェクト: dasbavaria/echomesh
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
コード例 #6
0
ファイル: CommandFile.py プロジェクト: florian-f/echomesh
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))
コード例 #7
0
ファイル: DataFile.py プロジェクト: sagistrauss/echomesh
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))
コード例 #8
0
ファイル: Cache.py プロジェクト: dasbavaria/echomesh
  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))
コード例 #9
0
    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))
コード例 #10
0
ファイル: MergeSettings.py プロジェクト: TopRamenGod/echomesh
    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])
コード例 #11
0
    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])
コード例 #12
0
ファイル: MergeConfig.py プロジェクト: florian-f/echomesh
  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])
コード例 #13
0
ファイル: MergeConfig.py プロジェクト: dasbavaria/echomesh
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
コード例 #14
0
ファイル: MakeRoot.py プロジェクト: harveyqing/echomesh
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
コード例 #15
0
ファイル: CommandFile.py プロジェクト: florian-f/echomesh
def read_config(scope='default'):
  return Yaml.read(config_file(scope))
コード例 #16
0
ファイル: Settings.py プロジェクト: TopRamenGod/echomesh
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)
コード例 #17
0
ファイル: Routing.py プロジェクト: dasbavaria/echomesh
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)
コード例 #18
0
ファイル: Settings.py プロジェクト: sagistrauss/echomesh
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)