code: def copy_and_unpack_data(
      logger, pids, fold_dir, source_dir, target_dir
  ):
      start_time = time.time()
      with open(os.path.join(fold_dir, "file_list.txt"), "w") as handle:
          for pid in pids:
              handle.write("{}.npy\n".format(pid))
  
      subprocess.call(
          "rsync -av --files-from {} {} {}".format(
              os.path.join(fold_dir, "file_list.txt"),
              source_dir,
              target_dir,
          ),
          shell=True,
      )
      # dutils.unpack_dataset(target_dir)
      copied_files = os.listdir(target_dir)
      logger.info(
          "copying and unpacking data set finsihed : {} files in target dir: {}. took {} sec".format(
              len(copied_files),
              target_dir,
              np.round(time.time() - start_time, 0),
          )
      )
  
imports: import numpy
  import os
  from collections import OrderedDict
  import pandas
  import pickle
  import time
  import subprocess
  import utils.dataloader_utils
  from batchgenerators.dataloading.data_loader import SlimDataLoaderBase
  from batchgenerators.transforms.spatial_transforms import MirrorTransform
  from batchgenerators.transforms.abstract_transforms import Compose
  from batchgenerators.dataloading.multi_threaded_augmenter import MultiThreadedAugmenter
  from batchgenerators.dataloading import SingleThreadedAugmenter
  from batchgenerators.transforms.spatial_transforms import SpatialTransform
  from batchgenerators.transforms.crop_and_pad_transforms import CenterCropTransform
  from batchgenerators.transforms.utility_transforms import ConvertSegToBoundingBoxCoordinates
label_desc: Use image node_id 5 for calling a global function with example usage: copy_and_unpack_data(logger, pids, fold_dir, source_dir, target_dir) without return types