content: import shutil
  from pathlib import Path
  
  from nnunetv2.dataset_conversion.Dataset027_ACDC import make_out_dirs
  from nnunetv2.dataset_conversion.generate_dataset_json import generate_dataset_json
  
  
  def copy_files(src_data_dir: Path, src_test_dir: Path, train_dir: Path, labels_dir: Path, test_dir: Path):
      """Copy files from the EMIDEC dataset to the nnUNet dataset folder. Returns the number of training cases."""
      patients_train = sorted([f for f in src_data_dir.iterdir() if f.is_dir()])
      patients_test = sorted([f for f in src_test_dir.iterdir() if f.is_dir()])
  
      # Copy training files and corresponding labels.
      for patient in patients_train:
          train_file = patient / "Images" / f"{patient.name}.nii.gz"
          label_file = patient / "Contours" / f"{patient.name}.nii.gz"
          shutil.copy(train_file, train_dir / f"{train_file.stem.split('.')[0]}_0000.nii.gz")
          shutil.copy(label_file, labels_dir)
  
      # Copy test files.
      for patient in patients_test:
          test_file = patient / "Images" / f"{patient.name}.nii.gz"
          shutil.copy(test_file, test_dir / f"{test_file.stem.split('.')[0]}_0000.nii.gz")
  
      return len(patients_train)
  
  
  def convert_emidec(src_data_dir: str, src_test_dir: str, dataset_id=27):
      out_dir, train_dir, labels_dir, test_dir = make_out_dirs(dataset_id=dataset_id, task_name="EMIDEC")
      num_training_cases = copy_files(Path(src_data_dir), Path(src_test_dir), train_dir, labels_dir, test_dir)
  
      generate_dataset_json(
          str(out_dir),
          channel_names={
              0: "cineMRI",
          },
          labels={
              "background": 0,
              "cavity": 1,
              "normal_myocardium": 2,
              "myocardial_infarction": 3,
              "no_reflow": 4,
          },
          file_ending=".nii.gz",
          num_training_cases=num_training_cases,
      )
  
  
  if __name__ == "__main__":
      import argparse
  
      parser = argparse.ArgumentParser()
      parser.add_argument("-i", "--input_dir", type=str, help="The EMIDEC dataset directory.")
      parser.add_argument("-t", "--test_dir", type=str, help="The EMIDEC test set directory.")
      parser.add_argument(
          "-d", "--dataset_id", required=False, type=int, default=115, help="nnU-Net Dataset ID, default: 115"
      )
      args = parser.parse_args()
      print("Converting...")
      convert_emidec(args.input_dir, args.test_dir, args.dataset_id)
      print("Done!")
  