Skip to content

Commit

Permalink
Split methods to prevent API-break.
Browse files Browse the repository at this point in the history
done as part of CURA-11501
  • Loading branch information
rburema committed Aug 15, 2024
1 parent b8bba65 commit 8805c6a
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 4 deletions.
7 changes: 6 additions & 1 deletion cura/Machines/MachineNode.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
from cura.Machines.QualityGroup import QualityGroup # To construct groups of quality profiles that belong together.
from cura.Machines.QualityNode import QualityNode
from cura.Machines.VariantNode import VariantNode
from cura.Machines.MaterialNode import MaterialNode
import UM.FlameProfiler


Expand Down Expand Up @@ -167,13 +168,17 @@ def preferredGlobalQuality(self) -> "QualityNode":

return self.global_qualities.get(self.preferred_quality_type, next(iter(self.global_qualities.values())))

def isExcludedMaterial(self, material_base_file: str) -> bool:
def isExcludedMaterialBaseFile(self, material_base_file: str) -> bool:
"""Returns whether the material should be excluded from the list of materials."""
for exclude_material in self.exclude_materials:
if exclude_material in material_base_file:
return True
return False

def isExcludedMaterial(self, material: MaterialNode) -> bool:
"""Returns whether the material should be excluded from the list of materials."""
return self.isExcludedMaterialBaseFile(material.base_file)

@UM.FlameProfiler.profile
def _loadAll(self) -> None:
"""(Re)loads all variants under this printer."""
Expand Down
4 changes: 2 additions & 2 deletions cura/Machines/VariantNode.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def _loadAll(self) -> None:
materials = list(materials_per_base_file.values())

# Filter materials based on the exclude_materials property.
filtered_materials = [material for material in materials if not self.machine.isExcludedMaterial(material["id"])]
filtered_materials = [material for material in materials if not self.machine.isExcludedMaterialBaseFile(material["id"])]

for material in filtered_materials:
base_file = material["base_file"]
Expand Down Expand Up @@ -127,7 +127,7 @@ def _materialAdded(self, container: ContainerInterface) -> None:
material_definition = container.getMetaDataEntry("definition")

base_file = container.getMetaDataEntry("base_file")
if self.machine.isExcludedMaterial(base_file):
if self.machine.isExcludedMaterialBaseFile(base_file):
return # Material is forbidden for this printer.
if base_file not in self.materials: # Completely new base file. Always better than not having a file as long as it matches our set-up.
if material_definition != "fdmprinter" and material_definition != self.machine.container_id:
Expand Down
2 changes: 1 addition & 1 deletion tests/Machines/TestVariantNode.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def test_variantNodeInit(container_registry, machine_node):

def test_variantNodeInit_excludedMaterial(container_registry, machine_node):
machine_node.exclude_materials = ["material_1"]
machine_node.isExcludedMaterial = MagicMock(side_effect=lambda material: material == "material_1")
machine_node.isExcludedMaterial = MagicMock(side_effect=lambda material: material["id"] == "material_1")
node = createVariantNode("variant_1", machine_node, container_registry)

assert "material_1" not in node.materials
Expand Down

0 comments on commit 8805c6a

Please sign in to comment.