code: def grouped_impl(wrap, size, sequence):
      
      iterator = iter(sequence)
      try:
          while True:
              batch = islice(iterator, size)
              yield list(chain((wrap(next(batch)),), batch))
      except StopIteration:
          return
docs: Implementation for grouped_t
      :param wrap: wrap children values with this
      :param size: size of groups
      :param sequence: sequence to group
      :return: grouped sequence