Exemple #1
0
    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]
Exemple #2
0
    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]