class_docstr: Base TFDS builder.
  
  The functions to overwrite are:
  
  * `_info`: Defines dataset features and metadata (see TFDS docs:
    https://www.tensorflow.org/datasets/add_dataset#_info_dataset_metadata)
  * `split_to_scene_configs`: Define the splits and scenes
  * `generate_scene`: Generate a single scene and returns the examples.
  
  Usage: See `HelloBeamWorker` for an example.
class_docstr_tok: ["Base","TFDS","builder",".","The","functions","to","overwrite","are",":","*","`","_info","`",":","Defines","dataset","features","and","metadata","(","see","TFDS","docs",":","https",":","\/\/www.tensorflow.org\/datasets\/add_dataset","#","_info_dataset_metadata",")","*","`","split_to_scene_configs","`",":","Define","the","splits","and","scenes","*","`","generate_scene","`",":","Generate","a","single","scene","and","returns","the","examples",".","Usage",":","See","`","HelloBeamWorker","`","for","an","example","."]
docstr: Flatten each scene examples.
docstr_tok: ["Flatten","each","scene","examples","."]
code: def _flatten_split_examples(
      self,
      id_and_split_to_exs: tuple[int, SplitToSceneExs],
  ) -> Iterator[tuple[str, tfds.typing.Key, ExDict]]:
      """Flatten each scene examples."""
      scene_id, split_to_exs = id_and_split_to_exs
  
      for split_name, scene_examples in split_to_exs.items():
          for i, ex in enumerate(scene_examples):
              yield split_name, f"{scene_id}_{i}", ex
  
imports: from __future__ import annotations
  import abc
  import collections
  import dataclasses
  import itertools
  import tempfile
  from typing import Any, Dict, Iterator, List, Optional, TypeVar, Union
  import apache_beam
  from etils import edc
  from etils import epath
  import kubric
  import tensorflow_datasets
label_desc: Use image node_id 5 for calling the KubricBuilder obj's underlying member method code with example usage: obj._flatten_split_examples(id_and_split_to_exs) without return types