From 5a14ef2a56d96b3dbc697c949d0fb13834ac8c59 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 9 Nov 2020 14:14:32 +0100 Subject: [PATCH 1/2] Simplify and speed up the extending of the qualities list --- cura/Machines/MaterialNode.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cura/Machines/MaterialNode.py b/cura/Machines/MaterialNode.py index c78c6aff03..6820c7d740 100644 --- a/cura/Machines/MaterialNode.py +++ b/cura/Machines/MaterialNode.py @@ -88,8 +88,10 @@ class MaterialNode(ContainerNode): variant = self.variant.variant_name) else: qualities_any_material = container_registry.findInstanceContainersMetadata(type = "quality", definition = self.variant.machine.quality_definition) - for material_metadata in container_registry.findInstanceContainersMetadata(type = "material", material = my_material_type): - qualities.extend((quality for quality in qualities_any_material if quality.get("material") == material_metadata["base_file"])) + + all_material_base_files = [material_metadata["base_file"] for material_metadata in container_registry.findInstanceContainersMetadata(type = "material", material = my_material_type)] + + qualities.extend((quality for quality in qualities_any_material if quality.get("material") in all_material_base_files)) if not qualities: # No quality profiles found. Go by GUID then. my_guid = self.guid From 01648a329e225795b7fb7a4c74a0755da82df69b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 9 Nov 2020 15:28:13 +0100 Subject: [PATCH 2/2] Convert list of all base_files into set Co-authored-by: Ghostkeeper --- cura/Machines/MaterialNode.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/MaterialNode.py b/cura/Machines/MaterialNode.py index 6820c7d740..18db7d982d 100644 --- a/cura/Machines/MaterialNode.py +++ b/cura/Machines/MaterialNode.py @@ -89,7 +89,7 @@ class MaterialNode(ContainerNode): else: qualities_any_material = container_registry.findInstanceContainersMetadata(type = "quality", definition = self.variant.machine.quality_definition) - all_material_base_files = [material_metadata["base_file"] for material_metadata in container_registry.findInstanceContainersMetadata(type = "material", material = my_material_type)] + all_material_base_files = {material_metadata["base_file"] for material_metadata in container_registry.findInstanceContainersMetadata(type = "material", material = my_material_type)} qualities.extend((quality for quality in qualities_any_material if quality.get("material") in all_material_base_files))