Skip to content

Commit

Permalink
Merge branch 'feature_CURA-3540_upgrade_for_project' of github.com:Ul…
Browse files Browse the repository at this point in the history
…timaker/Cura
  • Loading branch information
nallath committed Apr 18, 2017
2 parents f1ac1bd + b3f60c4 commit c20542b
Showing 1 changed file with 26 additions and 3 deletions.
29 changes: 26 additions & 3 deletions plugins/XmlMaterialProfile/XmlMaterialProfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

import copy
import io
from typing import Optional
import xml.etree.ElementTree as ET

from UM.Resources import Resources
Expand All @@ -11,7 +12,7 @@
from cura.CuraApplication import CuraApplication

import UM.Dictionary
from UM.Settings.InstanceContainer import InstanceContainer
from UM.Settings.InstanceContainer import InstanceContainer, InvalidInstanceError
from UM.Settings.ContainerRegistry import ContainerRegistry

## Handles serializing and deserializing material containers from an XML file
Expand Down Expand Up @@ -370,8 +371,30 @@ def clearData(self):
self._dirty = False
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
def deserialize(self, serialized):
# update the serialized data first
from UM.Settings.Interfaces import ContainerInterface
serialized = ContainerInterface.deserialize(self, serialized)
data = ET.fromstring(serialized)

# Reset previous metadata
Expand Down Expand Up @@ -406,10 +429,10 @@ def deserialize(self, serialized):
continue
meta_data[tag_name] = entry.text

if not "description" in meta_data:
if "description" not in meta_data:
meta_data["description"] = ""

if not "adhesion_info" in meta_data:
if "adhesion_info" not in meta_data:
meta_data["adhesion_info"] = ""

property_values = {}
Expand Down

0 comments on commit c20542b

Please sign in to comment.