code: def get_per_worker_dataset(dataset_or_dataset_fn, coordinator):
      """Returns a per-worker dataset from a dataset or a dataset function."""
      if callable(dataset_or_dataset_fn):
          return PerWorkerDatasetFromDatasetFunction(
              dataset_or_dataset_fn, coordinator
          )
      else:
          return PerWorkerDatasetFromDataset(
              dataset_or_dataset_fn, coordinator
          )
  
imports: import threading
  from tensorflow.python.data.ops import dataset_ops
  from tensorflow.python.data.ops.options import ExternalStatePolicy
  from tensorflow.python.distribute import input_lib
  from tensorflow.python.distribute.coordinator import remote_value
  from tensorflow.python.eager import context
  from tensorflow.python.eager import def_function
  from tensorflow.python.eager import function
  from tensorflow.python.framework import composite_tensor
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import type_spec
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gen_dataset_ops
  from tensorflow.python.ops import gen_experimental_dataset_ops
  from tensorflow.python.ops import variable_scope
  from tensorflow.python.util import nest
  from tensorflow.python.util.tf_export import tf_export
label_desc: Use image node_id 3 for calling a global function with example usage: get_per_worker_dataset(dataset_or_dataset_fn, coordinator) and returns: PerWorkerDatasetFromDatasetFunction, PerWorkerDatasetFromDataset