minor logic tidy up
diff --git a/reclass/datatypes/parameters.py b/reclass/datatypes/parameters.py
index fb18a81..97de688 100644
--- a/reclass/datatypes/parameters.py
+++ b/reclass/datatypes/parameters.py
@@ -95,9 +95,6 @@
return { k: self._wrap_value(v) for k, v in source.iteritems() }
def _update_value(self, cur, new, path):
- if cur is None:
- return new
-
if isinstance(cur, Value):
values = ValueList(cur)
elif isinstance(cur, ValueList):
@@ -162,11 +159,10 @@
"""
- if isinstance(new, dict) and (cur is None or isinstance(cur, dict)):
- if cur is None:
- cur = {}
+ if cur is None:
+ return new
+ elif isinstance(new, dict) and isinstance(cur, dict):
return self._merge_dict(cur, new, path)
-
else:
return self._update_value(cur, new, path)
diff --git a/reclass/utils/dictpath.py b/reclass/utils/dictpath.py
index 8ff037f..f5c4e36 100644
--- a/reclass/utils/dictpath.py
+++ b/reclass/utils/dictpath.py
@@ -59,12 +59,12 @@
if contents is None:
self._parts = []
else:
- if isinstance(contents, types.StringTypes):
+ if isinstance(contents, list):
+ self._parts = contents
+ elif isinstance(contents, types.StringTypes):
self._parts = self._split_string(contents)
elif isinstance(contents, tuple):
self._parts = list(contents)
- elif isinstance(contents, list):
- self._parts = contents
else:
raise TypeError('DictPath() takes string or list, '\
'not %s' % type(contents))
diff --git a/reclass/values/valuelist.py b/reclass/values/valuelist.py
index 29d32df..c7e965c 100644
--- a/reclass/values/valuelist.py
+++ b/reclass/values/valuelist.py
@@ -8,12 +8,10 @@
class ValueList(object):
- def __init__(self, value=None):
+ def __init__(self, value):
self._refs = []
self._allRefs = True
- self._values = []
- if value is not None:
- self._values.append(value)
+ self._values = [ value ]
self.assembleRefs()
self._has_exports = False
self._check_for_exports()
@@ -63,8 +61,8 @@
def merge(self, options):
output = None
for n, value in enumerate(self._values):
- if n is 0:
- output = self._values[0]
+ if output is None:
+ output = value
else:
output = value.merge_over(output, options)
return output