diff --git a/plugins/VersionUpgrade/VersionUpgrade49to410/VersionUpgrade49to410.py b/plugins/VersionUpgrade/VersionUpgrade49to410/VersionUpgrade49to410.py index f7bbf8c0e6..8f38f6f851 100644 --- a/plugins/VersionUpgrade/VersionUpgrade49to410/VersionUpgrade49to410.py +++ b/plugins/VersionUpgrade/VersionUpgrade49to410/VersionUpgrade49to410.py @@ -103,20 +103,24 @@ class VersionUpgrade49to410(VersionUpgrade): parser.read_string(serialized) # Update setting version number. + if "metadata" not in parser: + parser["metadata"] = {} parser["metadata"]["setting_version"] = "17" + if "general" not in parser: + parser["general"] = {} # Certain instance containers (such as definition changes) reference to a certain definition container # Since a number of those changed name, we also need to update those. - old_definition = parser["general"]["definition"] + old_definition = parser.get("general", "definition", fallback = "") if old_definition in self._renamed_profiles: parser["general"]["definition"] = self._renamed_profiles[old_definition] # For quality-changes profiles made for TwoTrees Bluer printers, change the definition to the two_trees_base and make sure that the quality is something we have a profile for. - if parser["metadata"].get("type", "") == "quality_changes": + if parser.get("metadata", "type", fallback = "") == "quality_changes": for possible_printer in self._quality_changes_to_two_trees_base: if os.path.basename(filename).startswith(possible_printer + "_"): parser["general"]["definition"] = "two_trees_base" - parser["metadata"]["quality_type"] = self._two_trees_bluer_quality_type_conversion.get(parser["metadata"]["quality_type"], "standard") + parser["metadata"]["quality_type"] = self._two_trees_bluer_quality_type_conversion.get(parser.get("metadata", "quality_type", fallback = "fast"), "standard") break result = io.StringIO() @@ -130,6 +134,8 @@ class VersionUpgrade49to410(VersionUpgrade): parser.read_string(serialized) # Update setting version number. + if "metadata" not in parser: + parser["metadata"] = {} parser["metadata"]["setting_version"] = "17" # Change renamed profiles.