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
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])