mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 14:37:29 -06:00
Fix persistence of setting names with uppercase characters
The problem was that Python's ConfigParser doesn't preserve case. Everything becomes lowercase. Some post-processing scripts have uppercase characters in their setting keys and these weren't preserved. This fix configures the ConfigParser to pass the setting keys untransformed. The transformation function becomes the str() function which just passes the input through untransformed.
This commit is contained in:
parent
acff530871
commit
c65e3656bd
1 changed files with 2 additions and 0 deletions
|
@ -210,6 +210,7 @@ class PostProcessingPlugin(QObject, Extension):
|
|||
continue
|
||||
script_str = script_str.replace("\\n", "\n").replace("\\\\", "\\") #Unescape escape sequences.
|
||||
script_parser = configparser.ConfigParser(interpolation = None)
|
||||
script_parser.optionxform = str #Don't transform the setting keys as they are case-sensitive.
|
||||
script_parser.read_string(script_str)
|
||||
for script_name, settings in script_parser.items(): #There should only be one, really! Otherwise we can't guarantee the order or allow multiple uses of the same script.
|
||||
if script_name == "DEFAULT": #ConfigParser always has a DEFAULT section, but we don't fill it. Ignore this one.
|
||||
|
@ -230,6 +231,7 @@ class PostProcessingPlugin(QObject, Extension):
|
|||
script_list_strs = []
|
||||
for script in self._script_list:
|
||||
parser = configparser.ConfigParser(interpolation = None) #We'll encode the script as a config with one section. The section header is the key and its values are the settings.
|
||||
parser.optionxform = str #Don't transform the setting keys as they are case-sensitive.
|
||||
script_name = script.getSettingData()["key"]
|
||||
parser.add_section(script_name)
|
||||
for key in script.getSettingData()["settings"]:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue