Add logs for debugging

CURA-8610
This commit is contained in:
j.delarago 2022-06-15 14:09:05 +02:00
parent 5d0e4238d5
commit 4e80d170d1
2 changed files with 9 additions and 2 deletions

View File

@ -63,8 +63,10 @@ class CuraPackageManager(PackageManager):
# Secure search paths are install directory paths, if a material is in here it must be bundled. # Secure search paths are install directory paths, if a material is in here it must be bundled.
paths = [Path(p) for p in glob.glob(path + '/**/*.xml.fdm_material')] paths = [Path(p) for p in glob.glob(path + '/**/*.xml.fdm_material')]
Logger.info(f"All bundled Materials Found: {[str(path) for path in paths]}")
for material in paths: for material in paths:
if material.name == file_name: if material.name == file_name:
Logger.info(f"Found bundled material: {material.name}. Located in path: {str(material)}")
with open(material, encoding="utf-8") as f: with open(material, encoding="utf-8") as f:
# Make sure the file we found has the same guid as our material # Make sure the file we found has the same guid as our material
# Parsing this xml would be better but the namespace is needed to search it. # Parsing this xml would be better but the namespace is needed to search it.
@ -79,19 +81,21 @@ class CuraPackageManager(PackageManager):
def getMaterialFilePackageId(self, file_name: str, guid: str) -> str: def getMaterialFilePackageId(self, file_name: str, guid: str) -> str:
"""Get the id of the installed material package that contains file_name""" """Get the id of the installed material package that contains file_name"""
Logger.info(f'Searching paths for package: {[f for f in os.scandir(self._installation_dirs_dict["materials"]) if f.is_dir()]}')
for material_package in [f for f in os.scandir(self._installation_dirs_dict["materials"]) if f.is_dir()]: for material_package in [f for f in os.scandir(self._installation_dirs_dict["materials"]) if f.is_dir()]:
package_id = material_package.name package_id = material_package.name
for root, _, file_names in os.walk(material_package.path): for root, _, file_names in os.walk(material_package.path):
if file_name not in file_names: if file_name not in file_names:
# File with the name we are looking for is not in this directory # File with the name we are looking for is not in this directory
continue continue
Logger.info(f"Found file: {file_name}")
Logger.info(f"Attempting to open {os.path.join(root, file_name)}")
with open(os.path.join(root, file_name), encoding="utf-8") as f: with open(os.path.join(root, file_name), encoding="utf-8") as f:
# Make sure the file we found has the same guid as our material # Make sure the file we found has the same guid as our material
# Parsing this xml would be better but the namespace is needed to search it. # Parsing this xml would be better but the namespace is needed to search it.
parsed_guid = PluginRegistry.getInstance().getPluginObject("XmlMaterialProfile").getMetadataFromSerialized( parsed_guid = PluginRegistry.getInstance().getPluginObject("XmlMaterialProfile").getMetadataFromSerialized(
f.read(), "GUID") f.read(), "GUID")
if guid == parsed_guid: if guid == parsed_guid:
return package_id return package_id

View File

@ -10,6 +10,7 @@ from UM.Logger import Logger
from UM.Math.Matrix import Matrix from UM.Math.Matrix import Matrix
from UM.Application import Application from UM.Application import Application
from UM.Message import Message from UM.Message import Message
from UM.Resources import Resources
from UM.Scene.SceneNode import SceneNode from UM.Scene.SceneNode import SceneNode
from cura.CuraApplication import CuraApplication from cura.CuraApplication import CuraApplication
@ -276,6 +277,8 @@ class ThreeMFWriter(MeshWriter):
if not package_data: if not package_data:
# We failed to find the package for this material # We failed to find the package for this material
Logger.info(f"Secure resource paths searched for: {Resources.getSecureSearchPaths()}")
message = Message(catalog.i18nc("@error:material", message = Message(catalog.i18nc("@error:material",
"It was not possible to store material package information in project file: {material}. This project may not open correctly on other systems.".format(material=extruder.getName())), "It was not possible to store material package information in project file: {material}. This project may not open correctly on other systems.".format(material=extruder.getName())),
title=catalog.i18nc("@info:title", "Failed to save material package information"), title=catalog.i18nc("@info:title", "Failed to save material package information"),