mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
Move ProfileReader and ProfileWriter over to Cura itself.
Contributes to CURA-1667 Profile import/export
This commit is contained in:
parent
c03588c6e5
commit
97d64a0749
3 changed files with 29 additions and 5 deletions
25
cura/ProfileWriter.py
Normal file
25
cura/ProfileWriter.py
Normal 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.")
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
from UM.Application import Application #To get the machine manager to create the new profile in.
|
from UM.Application import Application #To get the machine manager to create the new profile in.
|
||||||
from UM.Logger import Logger
|
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.
|
## A plugin that reads profile data from Cura profile files.
|
||||||
|
@ -25,16 +25,15 @@ class CuraProfileReader(ProfileReader):
|
||||||
def read(self, file_name):
|
def read(self, file_name):
|
||||||
# Create an empty profile.
|
# Create an empty profile.
|
||||||
profile = Profile(machine_manager = Application.getInstance().getMachineManager(), read_only = False)
|
profile = Profile(machine_manager = Application.getInstance().getMachineManager(), read_only = False)
|
||||||
serialised = ""
|
|
||||||
try:
|
try:
|
||||||
with open(file_name) as f: # Open file for reading.
|
with open(file_name) as f: # Open file for reading.
|
||||||
serialised = f.read()
|
serialized = f.read()
|
||||||
except IOError as e:
|
except IOError as e:
|
||||||
Logger.log("e", "Unable to open file %s for reading: %s", file_name, str(e))
|
Logger.log("e", "Unable to open file %s for reading: %s", file_name, str(e))
|
||||||
return None
|
return None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
profile.unserialise(serialised)
|
profile.deserialize(serialized)
|
||||||
except Exception as e: # Parsing error. This is not a (valid) Cura profile then.
|
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))
|
Logger.log("e", "Error while trying to parse profile: %s", str(e))
|
||||||
return None
|
return None
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.SaveFile import SaveFile
|
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.
|
## Writes profiles to Cura's own profile format with config files.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue