def stack_slice()

in multiset_codec/rans.py [0:0]


def stack_slice(stack, n):
    slc = []
    while n > 0:
        if stack:
            arr, stack = stack
        else:
            warn(f'Popping from empty message. Generating {32*n} bits of random data.')
            arr, stack = rng.integers(1 << 32, size=n, dtype='uint32'), ()
        if n >= len(arr):
            slc.append(arr)
            n -= len(arr)
        else:
            slc.append(arr[:n])
            stack = arr[n:], stack
            break
    return stack, np.concatenate(slc)