def render_groups(self):
group = []
result = []
def do_render_group():
for j in group:
# Some fancy logic here
result.append(j)
prev_value = None
for obj in self._data:
if (obj.value != prev_value):
do_render_group()
group = []
group.append(obj)
prev_value = obj.prev_value
if (len(group) > 0):
do_render_group()
return result