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: Returns the scene to generate per split.
  
  Example:
  
  ```python
  def split_to_scene_configs(self):
  
    # Train split has 2 scenes, test split had 1 scene
    scene0 = kb.sunds.SceneConfig()
    scene1 = kb.sunds.SceneConfig()
    scene2 = kb.sunds.SceneConfig()
  
    # The config passed here will be generated in `generate_scene`
    return {
       'train': [scene0, scene1],
       'test': [scene2],
    }
  ```
  
  In the above example, the train and test scenes are completely separate.
  If you want to use the same scene in both train and test, you can
  pass the same instance in both train/test.
  
  ```
  def split_to_scene_configs(self):
    # Use a single scene, shared between train and test
    scene0 = kb.sunds.SceneConfig()
    return {
       'train': [scene0],
       'test': [scene0],
    }
  ```
  
  Returns:
    Dict mapping splits to scenes
docstr_tok: ["Returns","the","scene","to","generate","per","split",".","Example",":","``","`","python","def","split_to_scene_configs","(","self",")",":","#","Train","split","has","2","scenes",",","test","split","had","1","scene","scene0","=","kb.sunds.SceneConfig","(",")","scene1","=","kb.sunds.SceneConfig","(",")","scene2","=","kb.sunds.SceneConfig","(",")","#","The","config","passed","here","will","be","generated","in","`","generate_scene","`","return","{","'train","'",":","[","scene0",",","scene1","]",",","'test","'",":","[","scene2","]",",","}","``","`","In","the","above","example",",","the","train","and","test","scenes","are","completely","separate",".","If","you","want","to","use","the","same","scene","in","both","train","and","test",",","you","can","pass","the","same","instance","in","both","train\/test",".","``","`","def","split_to_scene_configs","(","self",")",":","#","Use","a","single","scene",",","shared","between","train","and","test","scene0","=","kb.sunds.SceneConfig","(",")","return","{","'train","'",":","[","scene0","]",",","'test","'",":","[","scene0","]",",","}","``","`","Returns",":","Dict","mapping","splits","to","scenes"]
code: def split_to_scene_configs(self) -> dict[str, list[SceneConfig]]:
      """Returns the scene to generate per split.
  
      Example:
  
      ```python
      def split_to_scene_configs(self):
  
        # Train split has 2 scenes, test split had 1 scene
        scene0 = kb.sunds.SceneConfig()
        scene1 = kb.sunds.SceneConfig()
        scene2 = kb.sunds.SceneConfig()
  
        # The config passed here will be generated in `generate_scene`
        return {
           'train': [scene0, scene1],
           'test': [scene2],
        }
      ```
  
      In the above example, the train and test scenes are completely separate.
      If you want to use the same scene in both train and test, you can
      pass the same instance in both train/test.
  
      ```
      def split_to_scene_configs(self):
        # Use a single scene, shared between train and test
        scene0 = kb.sunds.SceneConfig()
        return {
           'train': [scene0],
           'test': [scene0],
        }
      ```
  
      Returns:
        Dict mapping splits to scenes
      """
      raise NotImplementedError
  
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 7 for calling the KubricBuilder obj's underlying member method code with example usage: obj.split_to_scene_configs() without return types