move non string item assignments from parser to value class
diff --git a/reclass/values/parser.py b/reclass/values/parser.py
index ca59da1..fc8fb34 100644
--- a/reclass/values/parser.py
+++ b/reclass/values/parser.py
@@ -7,9 +7,7 @@
import pyparsing as pp
from compitem import CompItem
-from dictitem import DictItem
from expitem import ExpItem
-from listitem import ListItem
from refitem import RefItem
from scaitem import ScaItem
@@ -109,17 +107,6 @@
def parse(self, value, delimiter):
self._delimiter = delimiter
-
- if isinstance(value, str):
- return self._parse_string(value)
- elif isinstance(value, list):
- return ListItem(value)
- elif isinstance(value, dict):
- return DictItem(value)
- else:
- return ScaItem(value)
-
- def _parse_string(self, value):
dollars = value.count('$')
if dollars == 0:
# speed up: only use pyparsing if there is a $ in the string
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()