Source code for laf.lib

import array
from itertools import zip_longest

[docs]def grouper(iterable, n, fillvalue=None): '''Collect data into fixed-length chunks or blocks grouper([1,2,3,4,5], 2, 0) --> [1,2] [3,4] [5,0] ''' args = [iter(iterable)] * n return zip_longest(*args, fillvalue=fillvalue)
[docs]def arrayify(source_list): dest_array = array.array('I') dests_array = array.array('I') j = 0 for i in range(len(source_list)): items = source_list[i] dest_array.append(j) dests_array.append(len(items)) dests_array.extend(items) j += 1 + len(items) return (dest_array, dests_array)
[docs]def make_inverse(mapping): return dict((y,x) for (x,y) in mapping.items())
[docs]def make_array_inverse(arraylist): return dict((x,n) for (n,x) in enumerate(arraylist))