diff options
author | Ghostkeeper <rubend@tutanota.com> | 2020-06-04 14:37:30 +0300 |
---|---|---|
committer | Ghostkeeper <rubend@tutanota.com> | 2020-06-04 14:37:30 +0300 |
commit | 2e5f4764bdf288e065c4bd54cd2d7fe1633ec976 (patch) | |
tree | 44a8e417b18d82209024f76576d92a22df8d3f87 /plugins/VersionUpgrade | |
parent | 7e53bc179f11732b3ca191a5098f106f909a3554 (diff) |
Remove duplicated version upgrade plug-in
These two version upgraders do the same operation. Their code is copied. Instead, we can just let one version upgrader upgrade both versions of the files.
Contributes to issue CURA-7413.
Diffstat (limited to 'plugins/VersionUpgrade')
4 files changed, 9 insertions, 153 deletions
diff --git a/plugins/VersionUpgrade/VersionUpgrade45to46/__init__.py b/plugins/VersionUpgrade/VersionUpgrade45to46/__init__.py index 090f8a109c..e9e835555c 100644 --- a/plugins/VersionUpgrade/VersionUpgrade45to46/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade45to46/__init__.py @@ -21,6 +21,15 @@ def getMetaData() -> Dict[str, Any]: ("quality_changes", 4000011): ("quality_changes", 4000013, upgrade.upgradeInstanceContainer), ("quality", 4000011): ("quality", 4000013, upgrade.upgradeInstanceContainer), ("user", 4000011): ("user", 4000013, upgrade.upgradeInstanceContainer), + + # Setting version 12 was also used during the 4.6 beta, but had no changes. + ("preferences", 6000012): ("preferences", 6000013, upgrade.upgradePreferences), + ("machine_stack", 4000012): ("machine_stack", 4000013, upgrade.upgradeStack), + ("extruder_train", 4000012): ("extruder_train", 4000013, upgrade.upgradeStack), + ("definition_changes", 4000012): ("definition_changes", 4000013, upgrade.upgradeInstanceContainer), + ("quality_changes", 4000012): ("quality_changes", 4000013, upgrade.upgradeInstanceContainer), + ("quality", 4000012): ("quality", 4000013, upgrade.upgradeInstanceContainer), + ("user", 4000012): ("user", 4000013, upgrade.upgradeInstanceContainer), }, "sources": { "preferences": { diff --git a/plugins/VersionUpgrade/VersionUpgrade46bto46/VersionUpgrade46bto46.py b/plugins/VersionUpgrade/VersionUpgrade46bto46/VersionUpgrade46bto46.py deleted file mode 100644 index 7d1b865e19..0000000000 --- a/plugins/VersionUpgrade/VersionUpgrade46bto46/VersionUpgrade46bto46.py +++ /dev/null @@ -1,86 +0,0 @@ -# Copyright (c) 2020 Ultimaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. - -import configparser -from typing import Tuple, List -import io -from UM.VersionUpgrade import VersionUpgrade - -class VersionUpgrade46bto46(VersionUpgrade): - def getCfgVersion(self, serialised: str) -> int: - parser = configparser.ConfigParser(interpolation = None) - parser.read_string(serialised) - format_version = int(parser.get("general", "version")) # Explicitly give an exception when this fails. That means that the file format is not recognised. - setting_version = int(parser.get("metadata", "setting_version", fallback = "0")) - return format_version * 1000000 + setting_version - - def upgradePreferences(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: - """ - Upgrades preferences to have the new version number. - :param serialized: The original contents of the preferences file. - :param filename: The file name of the preferences file. - :return: A list of new file names, and a list of the new contents for - those files. - """ - parser = configparser.ConfigParser(interpolation = None) - parser.read_string(serialized) - - # Update version number. - parser["metadata"]["setting_version"] = "13" - - result = io.StringIO() - parser.write(result) - return [filename], [result.getvalue()] - - def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: - """ - Upgrades instance containers to have the new version number. - - This changes the maximum deviation setting if that setting was present - in the profile. - :param serialized: The original contents of the instance container. - :param filename: The original file name of the instance container. - :return: A list of new file names, and a list of the new contents for - those files. - """ - parser = configparser.ConfigParser(interpolation = None, comment_prefixes = ()) - parser.read_string(serialized) - - # Update version number. - parser["metadata"]["setting_version"] = "13" - - if "values" in parser: - # Maximum Deviation's effect was corrected. Previously the deviation - # ended up being only half of what the user had entered. This was - # fixed in Cura 4.7 so there we need to halve the deviation that the - # user had entered. - if "meshfix_maximum_deviation" in parser["values"]: - maximum_deviation = parser["values"]["meshfix_maximum_deviation"] - if maximum_deviation.startswith("="): - maximum_deviation = maximum_deviation[1:] - maximum_deviation = "=(" + maximum_deviation + ") / 2" - parser["values"]["meshfix_maximum_deviation"] = maximum_deviation - - result = io.StringIO() - parser.write(result) - return [filename], [result.getvalue()] - - def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: - """ - Upgrades stacks to have the new version number. - :param serialized: The original contents of the stack. - :param filename: The original file name of the stack. - :return: A list of new file names, and a list of the new contents for - those files. - """ - parser = configparser.ConfigParser(interpolation = None) - parser.read_string(serialized) - - # Update version number. - if "metadata" not in parser: - parser["metadata"] = {} - parser["metadata"]["setting_version"] = "13" - - result = io.StringIO() - parser.write(result) - return [filename], [result.getvalue()] diff --git a/plugins/VersionUpgrade/VersionUpgrade46bto46/__init__.py b/plugins/VersionUpgrade/VersionUpgrade46bto46/__init__.py deleted file mode 100644 index 9f099110ea..0000000000 --- a/plugins/VersionUpgrade/VersionUpgrade46bto46/__init__.py +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright (c) 2020 Ultimaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. - -from typing import Any, Dict, TYPE_CHECKING - -from . import VersionUpgrade46bto46 - -if TYPE_CHECKING: - from UM.Application import Application - -upgrade = VersionUpgrade46bto46.VersionUpgrade46bto46() - -def getMetaData() -> Dict[str, Any]: - return { - "version_upgrade": { - # From To Upgrade function - ("preferences", 6000012): ("preferences", 6000013, upgrade.upgradePreferences), - ("machine_stack", 4000012): ("machine_stack", 4000013, upgrade.upgradeStack), - ("extruder_train", 4000012): ("extruder_train", 4000013, upgrade.upgradeStack), - ("definition_changes", 4000012): ("definition_changes", 4000013, upgrade.upgradeInstanceContainer), - ("quality_changes", 4000012): ("quality_changes", 4000013, upgrade.upgradeInstanceContainer), - ("quality", 4000012): ("quality", 4000013, upgrade.upgradeInstanceContainer), - ("user", 4000012): ("user", 4000013, upgrade.upgradeInstanceContainer), - }, - "sources": { - "preferences": { - "get_version": upgrade.getCfgVersion, - "location": {"."} - }, - "machine_stack": { - "get_version": upgrade.getCfgVersion, - "location": {"./machine_instances"} - }, - "extruder_train": { - "get_version": upgrade.getCfgVersion, - "location": {"./extruders"} - }, - "definition_changes": { - "get_version": upgrade.getCfgVersion, - "location": {"./definition_changes"} - }, - "quality_changes": { - "get_version": upgrade.getCfgVersion, - "location": {"./quality_changes"} - }, - "quality": { - "get_version": upgrade.getCfgVersion, - "location": {"./quality"} - }, - "user": { - "get_version": upgrade.getCfgVersion, - "location": {"./user"} - } - } - } - - -def register(app: "Application") -> Dict[str, Any]: - return {"version_upgrade": upgrade} diff --git a/plugins/VersionUpgrade/VersionUpgrade46bto46/plugin.json b/plugins/VersionUpgrade/VersionUpgrade46bto46/plugin.json deleted file mode 100644 index 5100528017..0000000000 --- a/plugins/VersionUpgrade/VersionUpgrade46bto46/plugin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "Version Upgrade 4.6-beta to 4.6.0", - "author": "Ultimaker B.V.", - "version": "1.0.0", - "description": "Upgrades configurations from Cura 4.6-BETA to Cura 4.6.", - "api": "7.2.0", - "i18n-catalog": "cura" -} |