def split_sequence_as_iterable(self, values):
    'Group sequence into iterables\n\n        Parameters\n        ----------\n        values : iterable of length equal to keys\n            iterable of values to be grouped\n\n        Yields\n        ------\n        iterable of items in values\n\n        Notes\n        -----\n        This is the preferred method if values has random access, but we dont want it completely in memory.\n        Like a big memory mapped file, for instance\n        '
    print(self.count)
    s = iter(self.index.sorter)
    for c in self.count:
        (yield (values[i] for i in itertools.islice(s, int(c))))
Group sequence into iterables

Parameters
----------
values : iterable of length equal to keys
    iterable of values to be grouped

Yields
------
iterable of items in values

Notes
-----
This is the preferred method if values has random access, but we dont want it completely in memory.
Like a big memory mapped file, for instance
def split_sequence_as_iterable(self, values):
    'Group sequence into iterables\n\n        Parameters\n        ----------\n        values : iterable of length equal to keys\n            iterable of values to be grouped\n\n        Yields\n        ------\n        iterable of items in values\n\n        Notes\n        -----\n        This is the preferred method if values has random access, but we dont want it completely in memory.\n        Like a big memory mapped file, for instance\n        '
    print(self.count)
    s = iter(self.index.sorter)
    for c in self.count:
        (yield (values[i] for i in itertools.islice(s, int(c))))