Move ProfileReader and ProfileWriter over to Cura itself.

Contributes to CURA-1667 Profile import/export
This commit is contained in:
Simon Edwards 2016-06-08 15:36:26 +02:00
parent c03588c6e5
commit 97d64a0749
3 changed files with 29 additions and 5 deletions

25
cura/ProfileWriter.py Normal file
View file

@ -0,0 +1,25 @@
# Copyright (c) 2015 Ultimaker B.V.
# Uranium is released under the terms of the AGPLv3 or higher.
from UM.PluginObject import PluginObject
## Base class for profile writer plugins.
#
# This class defines a write() function to write profiles to files with.
class ProfileWriter(PluginObject):
## Initialises the profile writer.
#
# This currently doesn't do anything since the writer is basically static.
def __init__(self):
super().__init__()
## Writes a profile to the specified file path.
#
# The profile writer may write its own file format to the specified file.
#
# \param path \type{string} The file to output to.
# \param profile \type{Profile} The profile to write to the file.
# \return \code True \endcode if the writing was successful, or \code
# False \endcode if it wasn't.
def write(self, path, node):
raise NotImplementedError("Profile writer plugin was not correctly implemented. No write was specified.")

View file

@ -3,7 +3,7 @@
from UM.Application import Application #To get the machine manager to create the new profile in.
from UM.Logger import Logger
from UM.Settings.ProfileReader import ProfileReader
from cura.ProfileReader import ProfileReader
## A plugin that reads profile data from Cura profile files.
@ -25,16 +25,15 @@ class CuraProfileReader(ProfileReader):
def read(self, file_name):
# Create an empty profile.
profile = Profile(machine_manager = Application.getInstance().getMachineManager(), read_only = False)
serialised = ""
try:
with open(file_name) as f: # Open file for reading.
serialised = f.read()
serialized = f.read()
except IOError as e:
Logger.log("e", "Unable to open file %s for reading: %s", file_name, str(e))
return None
try:
profile.unserialise(serialised)
profile.deserialize(serialized)
except Exception as e: # Parsing error. This is not a (valid) Cura profile then.
Logger.log("e", "Error while trying to parse profile: %s", str(e))
return None

View file

@ -4,7 +4,7 @@
from UM.Logger import Logger
from UM.SaveFile import SaveFile
from UM.Settings.ProfileWriter import ProfileWriter
from cura.ProfileWriter import ProfileWriter
## Writes profiles to Cura's own profile format with config files.