# Path: sunds/core/spec_dict.py
# class SpecDict(dict):
#   def maybe_set(
#       self,
#       key: str,
#       value: Union[FeaturesOrBool, Any],
#       default: Union[FeaturesOrBool, _Factory] = False,
#   ) -> None:
#   def maybe_update(
#       self,
#       other: FeaturesOrBool,
#       default: FeaturesOrBool = False,
#   ) -> None:
# def labeled_image(
#     labels: LabelArg,
#     **kwargs: Any,
# ) -> tfds.features.LabeledImage:
# def _is_features(features: FeatureSpecs) -> bool:
# 
# Path: sunds/typing.py



from typing import Tuple
from sunds.core import spec_dict
from sunds.typing import Dim, FeatureSpecs, FeaturesOrBool, LabelOrFeaturesOrBool  # pylint: disable=g-multiple-import
import tensorflow as tf
import tensorflow_datasets as tfds
  `frame` which is used to store information about all frames in a scene.

  Args:
    cameras: A dict[camera_name, sunds.specs.camera_spec()]

  Returns:
    A composite `tfds` feature defining the specification of `frame` data.
  """
  return {
      # A unique name 🔑 that identifies the sequence the frame is from.
      'scene_name': tfds.features.Text(),
      # A unique name 🔑 that identifies this particular frame.
      'frame_name': tfds.features.Text(),
      # Frame pose w.r.t scene: X_{scene} = R * X_{frame} + t.
      'pose': pose_spec(),
      # Frame timestamp ⏰. This is expected to be the timestamp when frame
      # `pose` was recorded. We expect this timestamp to be relative to the
      # nominal timestamp of the scene this frame belongs to.
      'timestamp': tf.float32,
      # Camera sensor data. Each frame can have multiple cameras (e.g. stereo
      # setups, autonomous cars with multiple cameras). See `camera_spec` for
      # more details about the contents of each camera.
      'cameras': cameras,
  }


def camera_spec(
    *,
    color_image: FeaturesOrBool = False,
    category_image: LabelOrFeaturesOrBool = False,

# Path: sunds/core/spec_dict.py
# class SpecDict(dict):
#   def maybe_set(
#       self,
#       key: str,
#       value: Union[FeaturesOrBool, Any],
#       default: Union[FeaturesOrBool, _Factory] = False,
#   ) -> None:
#   def maybe_update(
#       self,
#       other: FeaturesOrBool,
#       default: FeaturesOrBool = False,
#   ) -> None:
# def labeled_image(
#     labels: LabelArg,
#     **kwargs: Any,
# ) -> tfds.features.LabeledImage:
# def _is_features(features: FeatureSpecs) -> bool:
# 
# Path: sunds/typing.py



# Path: sunds/core/specs.py
from typing import Tuple
from sunds.core import spec_dict
from sunds.typing import Dim, FeatureSpecs, FeaturesOrBool, LabelOrFeaturesOrBool  # pylint: disable=g-multiple-import
import tensorflow as tf
import tensorflow_datasets as tfds

  `frame` which is used to store information about all frames in a scene.

  Args:
    cameras: A dict[camera_name, sunds.specs.camera_spec()]

  Returns:
    A composite `tfds` feature defining the specification of `frame` data.
  """
  return {
      # A unique name 🔑 that identifies the sequence the frame is from.
      'scene_name': tfds.features.Text(),
      # A unique name 🔑 that identifies this particular frame.
      'frame_name': tfds.features.Text(),
      # Frame pose w.r.t scene: X_{scene} = R * X_{frame} + t.
      'pose': pose_spec(),
      # Frame timestamp ⏰. This is expected to be the timestamp when frame
      # `pose` was recorded. We expect this timestamp to be relative to the
      # nominal timestamp of the scene this frame belongs to.
      'timestamp': tf.float32,
      # Camera sensor data. Each frame can have multiple cameras (e.g. stereo
      # setups, autonomous cars with multiple cameras). See `camera_spec` for
      # more details about the contents of each camera.
      'cameras': cameras,
  }


def camera_spec(
    *,
    color_image: FeaturesOrBool = False,
    category_image: LabelOrFeaturesOrBool = False,

    instance_image: LabelOrFeaturesOrBool = False,