code: def group_device_names(devices, group_size):
      
      num_devices = len(devices)
      if group_size > num_devices:
          raise ValueError(
              "only %d devices, but group_size=%d" % (num_devices, group_size))
      num_groups = (
          num_devices // group_size + (1 if
                                       (num_devices % group_size != 0) else 0))
      groups = [[] for i in range(num_groups)]
      for i in range(0, num_groups * group_size):
          groups[i % num_groups].append(devices[i % num_devices])
      return groups
docs: Group device names into groups of group_size.
  
    Args:
      devices: list of strings naming devices.
      group_size: int >= 1
  
    Returns:
      list of lists of devices, where each inner list is group_size long,
        and each device appears at least once in an inner list.  If
        len(devices) % group_size = 0 then each device will appear
        exactly once.
  
    Raises:
      ValueError: group_size > len(devices)