diff --git a/dotfiles/lib/python/segment.py b/dotfiles/lib/python/segment.py new file mode 100644 index 00000000..c403f482 --- /dev/null +++ b/dotfiles/lib/python/segment.py @@ -0,0 +1,13 @@ +def segment(iterable, segment_length): + if segment_length is None: + yield iterable + raise StopIteration + + def yield_length(): + for _ in xrange(segment_length): + yield iterable.next() + while True: + segment = list(yield_length()) + if not segment: + raise StopIteration + yield segment