Example #1
0
    def save(self):
        saved_files = []
        for f, settings in self.file_settings:
            if len(settings) > 2 and settings[2]:
                saved_files.append(f)
                settings[1] = Merge.merge(*settings[1:])
                while len(settings) > 2:
                    settings.pop()
                if os.path.exists(f):
                    with open(f, 'r') as fo:
                        data = fo.read().split(Yaml.SEPARATOR)[0]
                else:
                    data = ''

                parent = os.path.dirname(f)
                if not os.path.exists(parent):
                    from echomesh.util import Log
                    Log.logger(__name__).info('Creating directory %s.', parent)
                    os.makedirs(parent)

                with open(f, 'wb') as fw:
                    if data:
                        fw.write(data)
                        fw.write(Yaml.SEPARATOR)
                    fw.write(Yaml.encode_one(settings[1]))

        self.arg_settings = Merge.difference_strict(
            self.arg_settings, self.changed)
        self.recalculate()
        return saved_files
Example #2
0
    def save(self):
        saved_files = []
        for f, settings in self.file_settings:
            if len(settings) > 2 and settings[2]:
                saved_files.append(f)
                settings[1] = Merge.merge(*settings[1:])
                while len(settings) > 2:
                    settings.pop()
                if os.path.exists(f):
                    with open(f, 'r') as fo:
                        data = fo.read().split(Yaml.SEPARATOR)[0]
                else:
                    data = ''

                parent = os.path.dirname(f)
                if not os.path.exists(parent):
                    from echomesh.util import Log
                    Log.logger(__name__).info('Creating directory %s.', parent)
                    os.makedirs(parent)

                with open(f, 'wb') as fw:
                    if data:
                        fw.write(data)
                        fw.write(Yaml.SEPARATOR)
                    fw.write(Yaml.encode_one(settings[1]))

        self.arg_settings = Merge.difference_strict(self.arg_settings,
                                                    self.changed)
        self.recalculate()
        return saved_files
Example #3
0
    def recalculate(self):
        self.args = None
        self.changed = {}
        for _, settings in self.file_settings:
            self.args = Merge.merge(self.args, *settings)
            self.changed = Merge.merge(self.changed, *settings[2:])

        arg = copy.deepcopy(self.arg_settings)
        clean_arg = Merge.difference_strict(arg, self.changed)
        self.args = Merge.merge_for_settings(self.args, clean_arg)

        return self.args
Example #4
0
    def recalculate(self):
        self.args = None
        self.changed = {}
        for _, settings in self.file_settings:
            self.args = Merge.merge(self.args, *settings)
            self.changed = Merge.merge(self.changed, *settings[2:])

        arg = copy.deepcopy(self.arg_settings)
        clean_arg = Merge.difference_strict(arg, self.changed)
        self.args = Merge.merge_for_settings(self.args, clean_arg)

        return self.args
Example #5
0
  def recalculate(self):
    self.config = None
    self.changed = {}
    for _, configs in self.file_configs:
      self.config = Merge.merge(self.config, *configs)
      self.changed = Merge.merge(self.changed, *configs[2:])

    arg = copy.deepcopy(self.arg_config)
    clean_arg = Merge.difference_strict(arg, self.changed)
    self.config = Merge.merge_for_config(self.config, clean_arg)

    return self.config
Example #6
0
  def save(self):
    saved_files = []
    for f, configs in self.file_configs:
      if len(configs) > 2 and configs[2]:
        saved_files.append(f)
        configs[1] = Merge.merge(*configs[1:])
        while len(configs) > 2:
          configs.pop()
        with open(f, 'r') as fo:
          data = fo.read().split(Yaml.SEPARATOR)[0]

        with open(f, 'wb') as fw:
          fw.write(data)
          fw.write(Yaml.SEPARATOR)
          fw.write(Yaml.encode_one(configs[1]))

    self.arg_config = Merge.difference_strict(self.arg_config, self.changed)
    self.recalculate()
    return saved_files