code: def generate_shard_args(outfiles, num_examples):
    
    num_shards = len(outfiles)
    num_examples_per_shard = num_examples // num_shards
    start_idxs = [i * num_examples_per_shard for i in range(num_shards)]
    end_idxs = list(start_idxs)
    end_idxs.pop(0)
    end_idxs.append(num_examples)
    return zip(start_idxs, end_idxs, outfiles)
docs: Generate start and end indices per outfile.