Skip to content

Commit

Permalink
Merge pull request #19703 from Ultimaker/CURA-12097_upgrade_to_59
Browse files Browse the repository at this point in the history
[CURA-12097] Upgrader for 5.8 -> 5.9 version.
  • Loading branch information
HellAholic authored Oct 2, 2024
2 parents e3211d4 + 4b2026e commit 1a7a5bc
Show file tree
Hide file tree
Showing 7,465 changed files with 7,634 additions and 7,462 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion cura/CuraApplication.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ class CuraApplication(QtApplication):
# SettingVersion represents the set of settings available in the machine/extruder definitions.
# You need to make sure that this version number needs to be increased if there is any non-backwards-compatible
# changes of the settings.
SettingVersion = 23
SettingVersion = 24

Created = False

Expand Down
103 changes: 103 additions & 0 deletions plugins/VersionUpgrade/VersionUpgrade58to59/VersionUpgrade58to59.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Copyright (c) 2024 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher.

import configparser
from typing import Dict, List, Tuple
import io
from UM.VersionUpgrade import VersionUpgrade

# Just to be sure, since in my testing there were both 0.1.0 and 0.2.0 settings about.
_PLUGIN_NAME = "_plugin__curaenginegradualflow"
_FROM_PLUGINS_SETTINGS = {
"gradual_flow_enabled",
"max_flow_acceleration",
"layer_0_max_flow_acceleration",
"gradual_flow_discretisation_step_size",
"reset_flow_duration",
} # type: Set[str]

_NEW_SETTING_VERSION = "24"


class VersionUpgrade58to59(VersionUpgrade):
def upgradePreferences(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
"""
Upgrades preferences to remove from the visibility list the settings that were removed in this version.
It also changes the preferences to have the new version number.
This removes any settings that were removed in the new Cura version.
: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"] = _NEW_SETTING_VERSION

# Fix renamed settings for visibility
if "visible_settings" in parser["general"]:
all_setting_keys = parser["general"]["visible_settings"].strip().split(";")
if all_setting_keys:
for idx, key in enumerate(all_setting_keys):
if key.startswith(_PLUGIN_NAME):
all_setting_keys[idx] = key.split("__")[-1]
parser["general"]["visible_settings"] = ";".join(all_setting_keys)

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 remove the settings that were removed in this version.
It also changes the instance containers to have the new version number.
This removes any settings that were removed in the new Cura version and updates settings that need to be updated
with a new value.
: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"] = _NEW_SETTING_VERSION

# Rename settings.
if "values" in parser:
for key, value in parser["values"].items():
if key.startswith(_PLUGIN_NAME):
parser["values"][key.split("__")[-1]] = parser["values"][key]
del parser["values"][key]

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"] = _NEW_SETTING_VERSION

result = io.StringIO()
parser.write(result)
return [filename], [result.getvalue()]
61 changes: 61 additions & 0 deletions plugins/VersionUpgrade/VersionUpgrade58to59/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Copyright (c) 2024 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher.

from typing import Any, Dict, TYPE_CHECKING

from . import VersionUpgrade58to59

if TYPE_CHECKING:
from UM.Application import Application

upgrade = VersionUpgrade58to59.VersionUpgrade58to59()


def getMetaData() -> Dict[str, Any]:
return {
"version_upgrade": {
# From To Upgrade function
("preferences", 7000023): ("preferences", 7000024, upgrade.upgradePreferences),
("machine_stack", 6000023): ("machine_stack", 6000024, upgrade.upgradeStack),
("extruder_train", 6000023): ("extruder_train", 6000024, upgrade.upgradeStack),
("definition_changes", 4000023): ("definition_changes", 4000024, upgrade.upgradeInstanceContainer),
("quality_changes", 4000023): ("quality_changes", 4000024, upgrade.upgradeInstanceContainer),
("quality", 4000023): ("quality", 4000024, upgrade.upgradeInstanceContainer),
("user", 4000023): ("user", 4000024, upgrade.upgradeInstanceContainer),
("intent", 4000023): ("intent", 4000024, 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}
8 changes: 8 additions & 0 deletions plugins/VersionUpgrade/VersionUpgrade58to59/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "Version Upgrade 5.8 to 5.9",
"author": "UltiMaker",
"version": "1.0.0",
"description": "Upgrades configurations from Cura 5.8 to Cura 5.9.",
"api": 8,
"i18n-catalog": "cura"
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_abs
quality_type = D010
setting_version = 23
setting_version = 24
type = intent
variant = DBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_abs
quality_type = D015
setting_version = 23
setting_version = 24
type = intent
variant = DBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_abs
quality_type = D020
setting_version = 23
setting_version = 24
type = intent
variant = DBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = quick
material = generic_abs
quality_type = D020
setting_version = 23
setting_version = 24
type = intent
variant = DBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = quick
material = generic_abs
quality_type = D030
setting_version = 23
setting_version = 24
type = intent
variant = DBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_abs
quality_type = D010
setting_version = 23
setting_version = 24
type = intent
variant = FBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_abs
quality_type = D015
setting_version = 23
setting_version = 24
type = intent
variant = FBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_abs
quality_type = D020
setting_version = 23
setting_version = 24
type = intent
variant = FBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = quick
material = generic_abs
quality_type = D020
setting_version = 23
setting_version = 24
type = intent
variant = FBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = quick
material = generic_abs
quality_type = D030
setting_version = 23
setting_version = 24
type = intent
variant = FBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_petg
quality_type = D010
setting_version = 23
setting_version = 24
type = intent
variant = DBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_petg
quality_type = D015
setting_version = 23
setting_version = 24
type = intent
variant = DBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_petg
quality_type = D020
setting_version = 23
setting_version = 24
type = intent
variant = DBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = quick
material = generic_petg
quality_type = D020
setting_version = 23
setting_version = 24
type = intent
variant = DBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = quick
material = generic_petg
quality_type = D020
setting_version = 23
setting_version = 24
type = intent
variant = DBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = quick
material = generic_petg
quality_type = D030
setting_version = 23
setting_version = 24
type = intent
variant = DBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_petg
quality_type = D010
setting_version = 23
setting_version = 24
type = intent
variant = FBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_petg
quality_type = D015
setting_version = 23
setting_version = 24
type = intent
variant = FBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_petg
quality_type = D020
setting_version = 23
setting_version = 24
type = intent
variant = FBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = quick
material = generic_petg
quality_type = D015
setting_version = 23
setting_version = 24
type = intent
variant = FBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = quick
material = generic_petg
quality_type = D020
setting_version = 23
setting_version = 24
type = intent
variant = FBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = quick
material = generic_petg
quality_type = D030
setting_version = 23
setting_version = 24
type = intent
variant = FBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_pla
quality_type = D010
setting_version = 23
setting_version = 24
type = intent
variant = DBE 0.40mm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = 4
intent_category = engineering
material = generic_pla
quality_type = D015
setting_version = 23
setting_version = 24
type = intent
variant = DBE 0.40mm

Expand Down
Loading

0 comments on commit 1a7a5bc

Please sign in to comment.