code: public static <T> CloseableIterable<List<T>> partition(final CloseableIterable<T> iterable, final int size) {
          return wrap(Iterables.partition(iterable, size), iterable);
      }
docs: Divides a closeable iterable into unmodifiable sublists of the given size (the final
  iterable may be smaller). For example, partitioning a closeable iterable containing
  {@code [a, b, c, d, e]} with a partition size of 3 yields {@code
  [[a, b, c], [d, e]]} -- an outer iterable containing two inner lists of
  three and two elements, all in the original order.
  <p/>
  <p>Iterators returned by the returned iterable do not support the {@link
  Iterator#remove()} method.