code: def setup(self, num_workers=1, ds_size=10, num_sources=1):
      ds = dataset_ops.Dataset.range(ds_size)
      if num_sources > 1:
          ds = dataset_ops.Dataset.zip((ds,) * num_sources)
      cluster = data_service_test_base.TestCluster(
          num_workers=num_workers
      )
      self.evaluate(
          distributed_save_op.distributed_save(
              ds, self._path, cluster.dispatcher_address()
          )
      )
      return cluster, ds
  
imports: import collections
  import os
  import pathlib
  import shutil
  import tempfile
  import time
  from absl.testing import parameterized
  from tensorflow.python.data.experimental.kernel_tests.service import test_base
  from tensorflow.python.data.experimental.ops import distributed_save_op
  from tensorflow.python.data.experimental.service import _pywrap_snapshot_utils
  from tensorflow.python.data.kernel_tests import test_base
  from tensorflow.python.data.ops import dataset_ops
  from tensorflow.python.data.ops import test_mode
  from tensorflow.python.framework import combinations
  from tensorflow.python.framework import errors
  from tensorflow.python.platform import test
label_desc: Use image node_id 2 for calling the SnapshotFtTest obj's underlying member method code with example usage: obj.setup(num_workers, ds_size, num_sources) and returns: cluster,  ds