docs: def i_batch(items, size):
      """Generator that iteratively batches items to a max size and consumes the
      items as each batch is yielded.
      """
      for items_batch in iter(lambda: tuple(islice(items, size)),
                              tuple()):
          yield items_batch