Heaps to changes to get the Cura code through the type checker (with minimal checking).

CURA-2917
This commit is contained in:
Simon Edwards 2016-11-21 21:36:08 +01:00
parent b2068ce99b
commit 14afd9eab7
17 changed files with 228 additions and 217 deletions

View file

@ -11,11 +11,11 @@ from UM.Logger import Logger
from UM.Util import parseBool
import UM.Dictionary
import UM.Settings
from UM.Settings.InstanceContainer import InstanceContainer
from UM.Settings.ContainerRegistry import ContainerRegistry
## Handles serializing and deserializing material containers from an XML file
class XmlMaterialProfile(UM.Settings.InstanceContainer):
class XmlMaterialProfile(InstanceContainer):
def __init__(self, container_id, *args, **kwargs):
super().__init__(container_id, *args, **kwargs)
@ -24,7 +24,7 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
base_file = self.getMetaDataEntry("base_file", None)
if base_file != self.id:
containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = base_file)
containers = ContainerRegistry.getInstance().findInstanceContainers(id = base_file)
if containers:
new_basefile = containers[0].duplicate(self.getMetaDataEntry("brand") + "_" + new_id, new_name)
base_file = new_basefile.id
@ -33,14 +33,14 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
new_id = self.getMetaDataEntry("brand") + "_" + new_id + "_" + self.getDefinition().getId()
variant = self.getMetaDataEntry("variant")
if variant:
variant_containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = variant)
variant_containers = ContainerRegistry.getInstance().findInstanceContainers(id = variant)
if variant_containers:
new_id += "_" + variant_containers[0].getName().replace(" ", "_")
has_base_file = True
else:
has_base_file = False
new_id = UM.Settings.ContainerRegistry.getInstance().createUniqueName("material", self._id, new_id, "")
new_id = ContainerRegistry.getInstance().createUniqueName("material", self._id, new_id, "")
result = super().duplicate(new_id, new_name)
if has_base_file:
result.setMetaDataEntry("base_file", base_file)
@ -53,7 +53,7 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
super().setReadOnly(read_only)
basefile = self.getMetaDataEntry("base_file", self._id) #if basefile is none, this is a basefile.
for container in UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(base_file = basefile):
for container in ContainerRegistry.getInstance().findInstanceContainers(base_file = basefile):
container._read_only = read_only
## Overridden from InstanceContainer
@ -65,7 +65,7 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
basefile = self.getMetaDataEntry("base_file", self._id) #if basefile is none, this is a basefile.
# Update all containers that share GUID and basefile
for container in UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(base_file = basefile):
for container in ContainerRegistry.getInstance().findInstanceContainers(base_file = basefile):
container.setMetaData(copy.deepcopy(self._metadata))
## Overridden from InstanceContainer, similar to setMetaDataEntry.
@ -84,7 +84,7 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
basefile = self.getMetaDataEntry("base_file", self._id) # if basefile is none, this is a basefile.
# Update the basefile as well, this is actually what we're trying to do
# Update all containers that share GUID and basefile
containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(base_file = basefile)
containers = ContainerRegistry.getInstance().findInstanceContainers(base_file = basefile)
for container in containers:
container.setName(new_name)
@ -96,12 +96,12 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
super().setProperty(key, property_name, property_value)
basefile = self.getMetaDataEntry("base_file", self._id) #if basefile is none, this is a basefile.
for container in UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(base_file = basefile):
for container in ContainerRegistry.getInstance().findInstanceContainers(base_file = basefile):
container._dirty = True
## Overridden from InstanceContainer
def serialize(self):
registry = UM.Settings.ContainerRegistry.getInstance()
registry = ContainerRegistry.getInstance()
base_file = self.getMetaDataEntry("base_file", "")
if base_file and self.id != base_file:
@ -296,7 +296,7 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
self.addMetaDataEntry("properties", property_values)
self.setDefinition(UM.Settings.ContainerRegistry.getInstance().findDefinitionContainers(id = "fdmprinter")[0])
self.setDefinition(ContainerRegistry.getInstance().findDefinitionContainers(id = "fdmprinter")[0])
global_compatibility = True
global_setting_values = {}
@ -336,7 +336,7 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
Logger.log("w", "Cannot create material for unknown machine %s", identifier.get("product"))
continue
definitions = UM.Settings.ContainerRegistry.getInstance().findDefinitionContainers(id = machine_id)
definitions = ContainerRegistry.getInstance().findDefinitionContainers(id = machine_id)
if not definitions:
Logger.log("w", "No definition found for machine ID %s", machine_id)
continue
@ -357,7 +357,7 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
new_material._dirty = False
UM.Settings.ContainerRegistry.getInstance().addContainer(new_material)
ContainerRegistry.getInstance().addContainer(new_material)
hotends = machine.iterfind("./um:hotend", self.__namespaces)
for hotend in hotends:
@ -365,10 +365,10 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
if hotend_id is None:
continue
variant_containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = hotend_id)
variant_containers = ContainerRegistry.getInstance().findInstanceContainers(id = hotend_id)
if not variant_containers:
# It is not really properly defined what "ID" is so also search for variants by name.
variant_containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(definition = definition.id, name = hotend_id)
variant_containers = ContainerRegistry.getInstance().findInstanceContainers(definition = definition.id, name = hotend_id)
if not variant_containers:
Logger.log("d", "No variants found with ID or name %s for machine %s", hotend_id, definition.id)
@ -406,7 +406,7 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
new_hotend_material.setProperty(key, "value", value, definition)
new_hotend_material._dirty = False
UM.Settings.ContainerRegistry.getInstance().addContainer(new_hotend_material)
ContainerRegistry.getInstance().addContainer(new_hotend_material)
if not global_compatibility:
# Change the type of this container so it is not shown as an option in menus.