Fix nested dict merges where None appear on one side
diff --git a/reclass/datatypes/parameters.py b/reclass/datatypes/parameters.py
index c96a67d..f9f116c 100644
--- a/reclass/datatypes/parameters.py
+++ b/reclass/datatypes/parameters.py
@@ -122,13 +122,17 @@
else:
values = ValueList(Value(cur, self._settings, self._uri), self._settings)
- if isinstance(new, Value):
+
+ value_list = isinstance(new, ValueList) or isinstance(cur, ValueList)
+
+ if not value_list and (new.contents() is None or new.contents() == cur.contents()):
+ return cur
+ elif isinstance(new, Value):
values.append(new)
elif isinstance(new, ValueList):
values.extend(new)
else:
values.append(Value(new, self._settings, self._uri))
-
return values
def _merge_dict(self, cur, new, path):
@@ -178,7 +182,7 @@
"""
- if cur is None:
+ if cur is None or str(cur) == 'None':
return new
elif isinstance(new, dict) and isinstance(cur, dict):
return self._merge_dict(cur, new, path)