Let 3mf workspace reader read from files per plugin

CURA-6627
This commit is contained in:
Jaime van Kessel 2020-01-16 11:43:07 +01:00
parent 46050f9618
commit 712cebcdd2
No known key found for this signature in database
GPG key ID: 3710727397403C91

View file

@ -737,12 +737,20 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
def _loadMetadata(self, file_name) -> Dict[str, Dict[str, Any]]:
archive = zipfile.ZipFile(file_name, "r")
metadata_files = [name for name in archive.namelist() if name.endswith("plugin_metadata.json")]
import json
try:
return json.loads(archive.open("Cura/plugin_metadata.json").read().decode("utf-8"))
except KeyError:
# The plugin_metadata.json file doesn't exist
return dict()
result = dict()
for metadata_file in metadata_files:
try:
plugin_id = metadata_file.split("/")[0]
result[plugin_id] = json.loads(archive.open("Cura/plugin_metadata.json").read().decode("utf-8"))
except Exception:
Logger.logException("w", "Unable to retrieve metadata for %s", metadata_file)
return result
def _processQualityChanges(self, global_stack):
if self._machine_info.quality_changes_info is None: