use join to build strings
diff --git a/reclass/values/compitem.py b/reclass/values/compitem.py
index 50188ef..ddde683 100644
--- a/reclass/values/compitem.py
+++ b/reclass/values/compitem.py
@@ -41,10 +41,8 @@
if len(self._items) == 1:
return self._items[0].render(context, exports)
# Multiple items
- string = ''
- for item in self._items:
- string += str(item.render(context, exports))
- return string
+ strings = [ str(i.render(context, exports)) for i in self._items ]
+ return "".join(strings)
def __repr__(self):
return 'CompItem(%r)' % self._items
diff --git a/reclass/values/refitem.py b/reclass/values/refitem.py
index a028908..d2a12b5 100644
--- a/reclass/values/refitem.py
+++ b/reclass/values/refitem.py
@@ -20,17 +20,16 @@
def assembleRefs(self, context={}):
self._refs = []
self._allRefs = True
- value = ''
for item in self._items:
if item.has_references():
item.assembleRefs(context)
self._refs.extend(item.get_references())
- try:
- value += str(item.render(context, None))
- except UndefinedVariableError as e:
- self._allRefs = False
- if self._allRefs:
+ try:
+ strings = [ str(i.render(context, None)) for i in self._items ]
+ value = "".join(strings)
self._refs.append(value)
+ except UndefinedVariableError as e:
+ self._allRefs = False
def contents(self):
return self._items
@@ -54,10 +53,8 @@
def render(self, context, exports):
if len(self._items) == 1:
return self._resolve(self._items[0].render(context, exports), context)
- string = ''
- for item in self._items:
- string += str(item.render(context, exports))
- return self._resolve(string, context)
+ strings = [ str(i.render(context, exports)) for i in self._items ]
+ return self._resolve("".join(strings), context)
def __repr__(self):
return 'RefItem(%r)' % self._items