mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-07 15:07:28 -06:00
Merge branch 'feature_CURA-3540_upgrade_for_project' of github.com:Ultimaker/Cura
This commit is contained in:
commit
c20542b7b8
1 changed files with 26 additions and 3 deletions
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
import copy
|
import copy
|
||||||
import io
|
import io
|
||||||
|
from typing import Optional
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
from UM.Resources import Resources
|
from UM.Resources import Resources
|
||||||
|
@ -11,7 +12,7 @@ from UM.Util import parseBool
|
||||||
from cura.CuraApplication import CuraApplication
|
from cura.CuraApplication import CuraApplication
|
||||||
|
|
||||||
import UM.Dictionary
|
import UM.Dictionary
|
||||||
from UM.Settings.InstanceContainer import InstanceContainer
|
from UM.Settings.InstanceContainer import InstanceContainer, InvalidInstanceError
|
||||||
from UM.Settings.ContainerRegistry import ContainerRegistry
|
from UM.Settings.ContainerRegistry import ContainerRegistry
|
||||||
|
|
||||||
## Handles serializing and deserializing material containers from an XML file
|
## Handles serializing and deserializing material containers from an XML file
|
||||||
|
@ -370,8 +371,30 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
self._dirty = False
|
self._dirty = False
|
||||||
self._path = ""
|
self._path = ""
|
||||||
|
|
||||||
|
def getConfigurationTypeFromSerialized(self, serialized: str) -> Optional[str]:
|
||||||
|
return "material"
|
||||||
|
|
||||||
|
def getVersionFromSerialized(self, serialized: str) -> Optional[int]:
|
||||||
|
version = None
|
||||||
|
data = ET.fromstring(serialized)
|
||||||
|
metadata = data.iterfind("./um:metadata/*", self.__namespaces)
|
||||||
|
for entry in metadata:
|
||||||
|
tag_name = _tag_without_namespace(entry)
|
||||||
|
if tag_name == "version":
|
||||||
|
try:
|
||||||
|
version = int(entry.text)
|
||||||
|
except Exception as e:
|
||||||
|
raise InvalidInstanceError("Invalid version string '%s': %s" % (entry.text, e))
|
||||||
|
break
|
||||||
|
if version is None:
|
||||||
|
raise InvalidInstanceError("Missing version in metadata")
|
||||||
|
return version
|
||||||
|
|
||||||
## Overridden from InstanceContainer
|
## Overridden from InstanceContainer
|
||||||
def deserialize(self, serialized):
|
def deserialize(self, serialized):
|
||||||
|
# update the serialized data first
|
||||||
|
from UM.Settings.Interfaces import ContainerInterface
|
||||||
|
serialized = ContainerInterface.deserialize(self, serialized)
|
||||||
data = ET.fromstring(serialized)
|
data = ET.fromstring(serialized)
|
||||||
|
|
||||||
# Reset previous metadata
|
# Reset previous metadata
|
||||||
|
@ -406,10 +429,10 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
continue
|
continue
|
||||||
meta_data[tag_name] = entry.text
|
meta_data[tag_name] = entry.text
|
||||||
|
|
||||||
if not "description" in meta_data:
|
if "description" not in meta_data:
|
||||||
meta_data["description"] = ""
|
meta_data["description"] = ""
|
||||||
|
|
||||||
if not "adhesion_info" in meta_data:
|
if "adhesion_info" not in meta_data:
|
||||||
meta_data["adhesion_info"] = ""
|
meta_data["adhesion_info"] = ""
|
||||||
|
|
||||||
property_values = {}
|
property_values = {}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue