code: def testIterableFailsWithUnknownShapeDatasetSpec(self):
      def gen():
          yield constant_op.constant([1, 2], dtype=dtypes.int32)
  
      dataset = dataset_ops.DatasetV2.from_generator(
          gen,
          output_signature=tensor_spec.TensorSpec(
              tensor_shape.TensorShape(None), dtype=dtypes.int32
          ),
      )
  
      with self.assertRaisesRegex(
          ValueError, "Dataset element shape must have a valid rank"
      ):
          input_util.DTensorDataset(
              dataset=dataset,
              global_batch_size=8,
              mesh=self.mesh,
              layouts=Layout.replicated(self.mesh, rank=2),
          )
  
imports: import contextlib
  import threading
  from absl.testing import parameterized
  import numpy
  from tensorflow.dtensor.python import api
  from tensorflow.dtensor.python import input_util
  from tensorflow.dtensor.python import layout
  from tensorflow.dtensor.python import mesh_util
  from tensorflow.dtensor.python.tests import test_util
  from tensorflow.python.data.ops import dataset_ops
  from tensorflow.python.eager.polymorphic_function import polymorphic_function
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors_impl
  from tensorflow.python.framework import tensor_shape
  from tensorflow.python.framework import tensor_spec
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import stateless_random_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import test
label_desc: Use image node_id 4 for calling the DTensorDatasetTest obj's underlying member method code with example usage: obj.testIterableFailsWithUnknownShapeDatasetSpec() without return types