diff --git a/common.py b/common.py index cb3e7b6..bc15e58 100644 --- a/common.py +++ b/common.py @@ -95,6 +95,11 @@ class Splitter(object): def split(iterable, n): return Splitter(iterable, n).generators +def icapture(iterable, result): + for i in iter(iterable): + result.append(i) + yield i + if __name__ == '__main__': import pylab diff --git a/test_common.py b/test_common.py index ea6c5b2..384f7ce 100644 --- a/test_common.py +++ b/test_common.py @@ -29,3 +29,12 @@ def test_split(): assert False except IndexError as e: assert e.args == (i,) + +def test_icapture(): + x = range(100) + y = [] + z = [] + for i in common.icapture(x, result=y): + z.append(i) + assert x == y + assert x == z