move non string item assignments from parser to value class
diff --git a/reclass/values/value.py b/reclass/values/value.py
index 34ac770..842f12c 100644
--- a/reclass/values/value.py
+++ b/reclass/values/value.py
@@ -5,15 +5,25 @@
#
from parser import Parser
+from dictitem import DictItem
+from listitem import ListItem
+from scaitem import ScaItem
from reclass.defaults import PARAMETER_INTERPOLATION_DELIMITER
class Value(object):
_parser = Parser()
- def __init__(self, val, delimiter=PARAMETER_INTERPOLATION_DELIMITER):
+ def __init__(self, value, delimiter=PARAMETER_INTERPOLATION_DELIMITER):
self._delimiter = delimiter
- self._item = self._parser.parse(val, self._delimiter)
+ if isinstance(value, str):
+ self._item = self._parser.parse(value, delimiter)
+ elif isinstance(value, list):
+ self._item = ListItem(value)
+ elif isinstance(value, dict):
+ self._item = DictItem(value)
+ else:
+ self._item = ScaItem(value)
def is_container(self):
return self._item.is_container()