Cura/plugins/CuraProfileWriter/CuraProfileWriter.py
Ghostkeeper a12246781d CuraProfileWriter use SaveFile instead of streams
The SaveFile is safer since it should save the file atomically. This safety has proven important in the past so use it here too.

Contributes to issue CURA-34.
2015-12-17 13:35:16 +01:00

27 lines
1.0 KiB
Python

# Copyright (c) 2015 Ultimaker B.V.
# Copyright (c) 2013 David Braam
# Uranium is released under the terms of the AGPLv3 or higher.
from UM.Logger import Logger
from UM.SaveFile import SaveFile
from UM.Settings.Profile import Profile
from UM.Settings.ProfileWriter import ProfileWriter
## Writes profiles to Cura's own profile format with config files.
class CuraProfileWriter(ProfileWriter):
## Writes a profile to the specified file path.
#
# \param path \type{string} The file to output to.
# \param profile \type{Profile} The profile to write to that file.
# \return \code True \endcode if the writing was successful, or \code
# False \endcode if it wasn't.
def write(self, path, profile):
serialised = profile.serialise()
try:
with SaveFile(path, "wt", -1, "utf-8") as f: #Open the specified file.
f.write(serialised)
except Exception as e:
Logger.log("e", "Failed to write profile to %s: %s", path, str(e))
return False
return True