code: def _get_shard_boundaries(
      num_examples: int,
      number_of_shards: int,
  ) -> List[int]:
      if num_examples == 0:
          raise AssertionError("No examples were yielded.")
      if num_examples < number_of_shards:
          raise AssertionError(
              "num_examples ({}) < number_of_shards ({})".format(
                  num_examples, number_of_shards
              )
          )
      return [
          int(round(num_examples * (float(i) / number_of_shards)))
          for i in range(1, number_of_shards + 1)
      ]
  
imports: import dataclasses
  import functools
  import itertools
  import json
  import os
  from typing import Any, Iterable, List, Optional, Tuple
  from absl import logging
  from etils import epath
  from tensorflow_datasets.core import example_parser
  from tensorflow_datasets.core import example_serializer
  from tensorflow_datasets.core import file_adapters
  from tensorflow_datasets.core import hashing
  from tensorflow_datasets.core import lazy_imports_lib
  from tensorflow_datasets.core import naming
  from tensorflow_datasets.core import shuffle
  from tensorflow_datasets.core import utils
  from tensorflow_datasets.core.utils import file_utils
  from tensorflow_datasets.core.utils import shard_utils
  from tensorflow_datasets.core.utils import type_utils
  from tensorflow_datasets.core.utils.lazy_imports_utils import apache_beam
label_desc: Use image node_id 4 for calling a global function with example usage: _get_shard_boundaries(num_examples, number_of_shards) and returns: unknown