fix merging of escaped strings by allowing a parameter object to
optionally set it's initial data with a simple assignment instead
of the normal value wrapping merge
diff --git a/reclass/datatypes/parameters.py b/reclass/datatypes/parameters.py
index e7199ab..718f41f 100644
--- a/reclass/datatypes/parameters.py
+++ b/reclass/datatypes/parameters.py
@@ -40,7 +40,7 @@
functionality and does not try to be a really mapping object.
'''
- def __init__(self, mapping, settings, uri):
+ def __init__(self, mapping, settings, uri, merge_initialise = True):
self._settings = settings
self._base = {}
self._uri = uri
@@ -51,10 +51,13 @@
self._needs_all_envs = False
self._keep_overrides = False
if mapping is not None:
- # we initialise by merging
- self._keep_overrides = True
- self.merge(mapping)
- self._keep_overrides = False
+ if merge_initialise:
+ # we initialise by merging
+ self._keep_overrides = True
+ self.merge(mapping)
+ self._keep_overrides = False
+ else:
+ self._base = mapping
#delimiter = property(lambda self: self._delimiter)
diff --git a/reclass/values/valuelist.py b/reclass/values/valuelist.py
index 6201564..99fbd23 100644
--- a/reclass/values/valuelist.py
+++ b/reclass/values/valuelist.py
@@ -107,8 +107,8 @@
deepCopied = False
else:
if isinstance(output, dict) and isinstance(new, dict):
- p1 = Parameters(output, self._settings, None)
- p2 = Parameters(new, self._settings, None)
+ p1 = Parameters(output, self._settings, None, merge_initialise = False)
+ p2 = Parameters(new, self._settings, None, merge_initialise = False)
p1.merge(p2)
output = p1.as_dict()
continue