Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Prado Gesto <d.pradogesto@ultimaker.com>2018-06-13 12:53:02 +0300
committerDiego Prado Gesto <d.pradogesto@ultimaker.com>2018-06-13 12:53:02 +0300
commit554a3fd9088dee488d9173aa50c98d8c66f5ad0c (patch)
tree7a7fd2f2153843fe16df0133ca3c01292255af4b /cura/Backups
parentf1b0c6238f302b86b87d18a8eb1131dd9d9bef53 (diff)
parent3a00ddb01d224ae8ee2545f4e69ff00bbfd7b5fb (diff)
Merge branch 'master' into mypy_fixes
Conflicts: cura/Backups/Backup.py cura/Settings/ExtruderManager.py cura/Settings/MachineManager.py
Diffstat (limited to 'cura/Backups')
-rw-r--r--cura/Backups/Backup.py39
-rw-r--r--cura/Backups/BackupsManager.py29
2 files changed, 29 insertions, 39 deletions
diff --git a/cura/Backups/Backup.py b/cura/Backups/Backup.py
index 6c1f02dc01..f935aa6af5 100644
--- a/cura/Backups/Backup.py
+++ b/cura/Backups/Backup.py
@@ -17,12 +17,11 @@ from UM.Resources import Resources
from cura.CuraApplication import CuraApplication
+## The back-up class holds all data about a back-up.
+#
+# It is also responsible for reading and writing the zip file to the user data
+# folder.
class Backup:
- """
- The backup class holds all data about a backup.
- It is also responsible for reading and writing the zip file to the user data folder.
- """
-
# These files should be ignored when making a backup.
IGNORED_FILES = [r"cura\.log", r"plugins\.json", r"cache", r"__pycache__", r"\.qmlc", r"\.pyc"]
@@ -33,10 +32,8 @@ class Backup:
self.zip_file = zip_file # type: Optional[bytes]
self.meta_data = meta_data # type: Optional[dict]
+ ## Create a back-up from the current user config folder.
def makeFromCurrent(self) -> None:
- """
- Create a backup from the current user config folder.
- """
cura_release = CuraApplication.getInstance().getVersion()
version_data_dir = Resources.getDataStoragePath()
@@ -77,12 +74,10 @@ class Backup:
"plugin_count": str(plugin_count)
}
+ ## Make a full archive from the given root path with the given name.
+ # \param root_path The root directory to archive recursively.
+ # \return The archive as bytes.
def _makeArchive(self, buffer: "io.BytesIO", root_path: str) -> Optional[ZipFile]:
- """
- Make a full archive from the given root path with the given name.
- :param root_path: The root directory to archive recursively.
- :return: The archive as bytes.
- """
ignore_string = re.compile("|".join(self.IGNORED_FILES))
try:
archive = ZipFile(buffer, "w", ZIP_DEFLATED)
@@ -101,15 +96,13 @@ class Backup:
"Could not create archive from user data directory: {}".format(error)))
return None
+ ## Show a UI message.
def _showMessage(self, message: str) -> None:
- """Show a UI message"""
Message(message, title=self.catalog.i18nc("@info:title", "Backup"), lifetime=30).show()
+ ## Restore this back-up.
+ # \return Whether we had success or not.
def restore(self) -> bool:
- """
- Restore this backups
- :return: A boolean whether we had success or not.
- """
if not self.zip_file or not self.meta_data or not self.meta_data.get("cura_release", None):
# We can restore without the minimum required information.
Logger.log("w", "Tried to restore a Cura backup without having proper data or meta data.")
@@ -142,14 +135,12 @@ class Backup:
return extracted
+ ## Extract the whole archive to the given target path.
+ # \param archive The archive as ZipFile.
+ # \param target_path The target path.
+ # \return Whether we had success or not.
@staticmethod
def _extractArchive(archive: "ZipFile", target_path: str) -> bool:
- """
- Extract the whole archive to the given target path.
- :param archive: The archive as ZipFile.
- :param target_path: The target path.
- :return: A boolean whether we had success or not.
- """
Logger.log("d", "Removing current data in location: %s", target_path)
Resources.factoryReset()
Logger.log("d", "Extracting backup to location: %s", target_path)
diff --git a/cura/Backups/BackupsManager.py b/cura/Backups/BackupsManager.py
index fa75ddb587..850b0a2edc 100644
--- a/cura/Backups/BackupsManager.py
+++ b/cura/Backups/BackupsManager.py
@@ -7,19 +7,18 @@ from cura.Backups.Backup import Backup
from cura.CuraApplication import CuraApplication
+## The BackupsManager is responsible for managing the creating and restoring of
+# back-ups.
+#
+# Back-ups themselves are represented in a different class.
class BackupsManager:
- """
- The BackupsManager is responsible for managing the creating and restoring of backups.
- Backups themselves are represented in a different class.
- """
def __init__(self):
self._application = CuraApplication.getInstance()
+ ## Get a back-up of the current configuration.
+ # \return A tuple containing a ZipFile (the actual back-up) and a dict
+ # containing some metadata (like version).
def createBackup(self) -> (Optional[bytes], Optional[dict]):
- """
- Get a backup of the current configuration.
- :return: A Tuple containing a ZipFile (the actual backup) and a dict containing some meta data (like version).
- """
self._disableAutoSave()
backup = Backup()
backup.makeFromCurrent()
@@ -27,12 +26,11 @@ class BackupsManager:
# We don't return a Backup here because we want plugins only to interact with our API and not full objects.
return backup.zip_file, backup.meta_data
+ ## Restore a back-up from a given ZipFile.
+ # \param zip_file A bytes object containing the actual back-up.
+ # \param meta_data A dict containing some metadata that is needed to
+ # restore the back-up correctly.
def restoreBackup(self, zip_file: bytes, meta_data: dict) -> None:
- """
- Restore a backup from a given ZipFile.
- :param zip_file: A bytes object containing the actual backup.
- :param meta_data: A dict containing some meta data that is needed to restore the backup correctly.
- """
if not meta_data.get("cura_release", None):
# If there is no "cura_release" specified in the meta data, we don't execute a backup restore.
Logger.log("w", "Tried to restore a backup without specifying a Cura version number.")
@@ -47,10 +45,11 @@ class BackupsManager:
# We don't want to store the data at this point as that would override the just-restored backup.
self._application.windowClosed(save_data=False)
+ ## Here we try to disable the auto-save plug-in as it might interfere with
+ # restoring a back-up.
def _disableAutoSave(self):
- """Here we try to disable the auto-save plugin as it might interfere with restoring a backup."""
self._application.setSaveDataEnabled(False)
+ ## Re-enable auto-save after we're done.
def _enableAutoSave(self):
- """Re-enable auto-save after we're done."""
self._application.setSaveDataEnabled(True)