def migrate_settings(settings, version=None): def mig_value(x): if x == "Position (index)": return INDEX if x == "Source position (index)": return INSTANCEID return x if not version: operations = ("augment", "merge", "combine") oper = operations[settings["merging"]] settings["attr_pairs"] = (True, True, [ (mig_value(settings[f"attr_{oper}_data"]), mig_value(settings[f"attr_{oper}_extra"])) ]) for oper in operations: del settings[f"attr_{oper}_data"] del settings[f"attr_{oper}_extra"] if not version or version < 2 and "attr_pairs" in settings: data_exists, extra_exists, attr_pairs = settings.pop("attr_pairs") if not (data_exists and extra_exists): settings["context_settings"] = [] return mapper = {0: (INDEX, 100), 1: (INSTANCEID, 100)} context = ContextHandler().new_context() context.values["attr_pairs"] = [ tuple(mapper.get(var, (var, 100)) for var in pair) for pair in attr_pairs ] context.variables1 = {} context.variables2 = {} settings["context_settings"] = [context]
def migrate_settings(settings, version=None): def mig_value(x): if x == "Position (index)": return INDEX if x == "Source position (index)": return INSTANCEID return x if not version: operations = ("augment", "merge", "combine") oper = operations[settings["merging"]] settings["attr_pairs"] = ([ (mig_value(settings[f"attr_{oper}_data"]), mig_value(settings[f"attr_{oper}_extra"])) ]) for oper in operations: del settings[f"attr_{oper}_data"] del settings[f"attr_{oper}_extra"] if not version or version < 2 and "attr_pairs" in settings: attr_pairs = settings.pop("attr_pairs") attr_pairs = [ tuple((var, 100) if isinstance(var, str) else var for var in pair) for pair in attr_pairs ] context = ContextHandler().new_context() context.variables1 = \ dict(var for var, _ in attr_pairs if var[1] > 100) context.variables2 = \ dict(var for _, var in attr_pairs if var[1] > 100) context.values["attr_pairs"] = attr_pairs settings["context_settings"] = [context]