+ total = -1
+
+ def saving(line_encoded):
+ try:
+ f.write(line_encoded)
+ except IOError:
+ traceback.print_exc()
+ return line_encoded
+
+ iterable = response
+
+ # split
+ iterable, iterable_len = itertools.tee(iterable)
+
+ iterable_len = itertools.imap(lambda l: len(l), iterable_len)
+ iterable_len = accumulate(iterable_len)
+ iterable_len = itertools.imap(
+ lambda value: float(value) / total / 2 + 0.5, iterable_len)
+ iterable_len = self._progressing(iterable_len)
+
+ # union
+ iterable = itertools.imap(lambda x, y: x, iterable, iterable_len)
+
+ iterable = itertools.imap(saving, iterable)
+ iterable = itertools.izip(itertools.count(1), iterable)
+
+ for num, line_encoded in iterable:
+ result = self._split_record(line_encoded)
+ if result:
+ id, title, res = result
+ yield id, title, res, num, lastmod