remove unnecessary dict deepcopy
diff --git a/reclass/datatypes/parameters.py b/reclass/datatypes/parameters.py
index fc6448b..fb18a81 100644
--- a/reclass/datatypes/parameters.py
+++ b/reclass/datatypes/parameters.py
@@ -78,21 +78,21 @@
def as_dict(self):
return self._base.copy()
- def _wrap_container(self, container, key, value):
+ def _wrap_value(self, value):
if isinstance(value, dict):
- self._wrap_dict(value)
+ return self._wrap_dict(value)
elif isinstance(value, list):
- self._wrap_list(value)
- elif not isinstance(value, (Value, ValueList)):
- container[key] = Value(value, self._delimiter)
+ return self._wrap_list(value)
+ elif isinstance(value, (Value, ValueList)):
+ return value
+ else:
+ return Value(value, self._delimiter)
- def _wrap_list(self, item_list):
- for n, value in enumerate(item_list):
- self._wrap_container(item_list, n, value)
+ def _wrap_list(self, source):
+ return [ self._wrap_value(v) for v in source ]
- def _wrap_dict(self, dictionary):
- for key, value in dictionary.iteritems():
- self._wrap_container(dictionary, key, value)
+ def _wrap_dict(self, source):
+ return { k: self._wrap_value(v) for k, v in source.iteritems() }
def _update_value(self, cur, new, path):
if cur is None:
@@ -186,8 +186,7 @@
self._unrendered = None
if isinstance(other, dict):
- wrapped = copy.deepcopy(other)
- self._wrap_dict(wrapped)
+ wrapped = self._wrap_dict(other)
self._base = self._merge_recurse(self._base, wrapped, DictPath(self._delimiter))
elif isinstance(other, self.__class__):