Store the data from each plugin in it's own folder

CURA-6627
This commit is contained in:
Jaime van Kessel 2020-01-16 09:50:45 +01:00
parent 6ae3172287
commit b8dbc1d160
No known key found for this signature in database
GPG key ID: 3710727397403C91

View file

@ -81,13 +81,15 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter):
return True
def _writePluginMetadataToArchive(self, archive):
file_name = "Cura/plugin_metadata.json"
file_name_template = "%s/plugin_metadata.json"
file_in_archive = zipfile.ZipInfo(file_name)
# For some reason we have to set the compress type of each file as well (it doesn't keep the type of the entire archive)
file_in_archive.compress_type = zipfile.ZIP_DEFLATED
import json
archive.writestr(file_in_archive, json.dumps(Application.getInstance()._workspace_metadata_storage.getAllData()))
for plugin_id, metadata in Application.getInstance()._workspace_metadata_storage.getAllData().items():
file_name = file_name_template % plugin_id
file_in_archive = zipfile.ZipInfo(file_name)
# We have to set the compress type of each file as well (it doesn't keep the type of the entire archive)
file_in_archive.compress_type = zipfile.ZIP_DEFLATED
import json
archive.writestr(file_in_archive, json.dumps(metadata, separators = (", ", ": "), indent = 4))
## Helper function that writes ContainerStacks, InstanceContainers and DefinitionContainers to the archive.
# \param container That follows the \type{ContainerInterface} to archive.