diff --git a/plugins/CuraProfileWriter/CuraProfileWriter.py b/plugins/CuraProfileWriter/CuraProfileWriter.py index 61e9fff47d..479b84f37e 100644 --- a/plugins/CuraProfileWriter/CuraProfileWriter.py +++ b/plugins/CuraProfileWriter/CuraProfileWriter.py @@ -2,18 +2,25 @@ # 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 stream. + ## Writes a profile to the specified file path. # - # \param stream \type{IOStream} The stream to write the profile to. - # \param profile \type{Profile} The profile to write to that stream. + # \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, stream, profile): + def write(self, path, profile): serialised = profile.serialise() - stream.write(serialised) + 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