class_docstr: ``nnUNetV2Runner`` provides an interface in MONAI to use `nnU-Net` V2 library to analyze, train, and evaluate
  neural networks for medical image segmentation tasks.
  
  ``nnUNetV2Runner`` can be used in two ways:
  
  #. with one line of code to execute the complete pipeline.
  #. with a series of commands to run each modules in the pipeline.
  
  The output of the interface is a directory that contains:
  
  #. converted dataset met the requirement of nnU-Net V2
  #. data analysis results
  #. checkpoints from the trained U-Net models
  #. validation accuracy in each fold of cross-validation
  #. the predictions on the testing datasets from the final algorithm ensemble and potential post-processing
  
  Args:
      input_config: the configuration dictionary or the file path to the configuration in the form of YAML.
          The keys required in the configuration are:
          - ``"datalist"``: File path to the datalist for the train/testing splits
          - ``"dataroot"``: File path to the dataset
          - ``"modality"``: Imaging modality, e.g. "CT", ["T2", "ADC"]
          Currently, the configuration supports these optional keys:
          - ``"nnunet_raw"``: File path that will be written to env variable for nnU-Net
          - ``"nnunet_preprocessed"``: File path that will be written to env variable for nnU-Net
          - ``"nnunet_results"``: File path that will be written to env variable for nnU-Net
          - ``"nnUNet_trained_models"``
          - ``"dataset_name_or_id"``: Name or Integer ID of the dataset
          If an optional key is not specified, then the pipeline will use the default values.
      trainer_class_name: the trainer class names offered by nnUNetV2 exhibit variations in training duration.
          Default: "nnUNetTrainer". Other options: "nnUNetTrainer_Xepoch". X could be one of 1,5,10,20,50,100,
          250,2000,4000,8000.
      export_validation_probabilities: True to save softmax predictions from final validation as npz
          files (in addition to predicted segmentations). Needed for finding the best ensemble.
          Default: True.
      work_dir: working directory to save the intermediate and final results.
  
  Examples:
      - Use the one-liner to start the nnU-Net workflow
  
      .. code-block:: bash
  
          python -m monai.apps.nnunet nnUNetV2Runner run --input_config ./input.yaml
  
      - Use `convert_dataset` to prepare the data to meet nnU-Net requirements, generate dataset JSON file,
          and copy the dataset to a location specified by ``nnunet_raw`` in the input config file
  
      .. code-block:: bash
  
          python -m monai.apps.nnunet nnUNetV2Runner convert_dataset --input_config="./input.yaml"
  
      - `convert_msd_dataset` is an alternative option to prepare the data if the dataset is MSD.
  
      .. code-block:: bash
  
          python -m monai.apps.nnunet nnUNetV2Runner convert_msd_dataset \
              --input_config "./input.yaml" --data_dir "/path/to/Task09_Spleen"
  
      - experiment planning and data pre-processing
  
      .. code-block:: bash
  
          python -m monai.apps.nnunet nnUNetV2Runner plan_and_process --input_config "./input.yaml"
  
      - training all 20 models using all GPUs available.
          "CUDA_VISIBLE_DEVICES" environment variable is not supported.
  
      .. code-block:: bash
  
          python -m monai.apps.nnunet nnUNetV2Runner train --input_config "./input.yaml"
  
      - training a single model on a single GPU for 5 epochs. Here ``config`` is used to specify the configuration.
  
      .. code-block:: bash
  
          python -m monai.apps.nnunet nnUNetV2Runner train_single_model --input_config "./input.yaml" \
              --config "3d_fullres" \
              --fold 0 \
              --gpu_id 0 \
              --trainer_class_name "nnUNetTrainer_5epochs" \
              --export_validation_probabilities True
  
      - training for all 20 models (4 configurations by 5 folds) on 2 GPUs
  
      .. code-block:: bash
  
          python -m monai.apps.nnunet nnUNetV2Runner train --input_config "./input.yaml" --gpu_id_for_all "0,1"
  
      - 5-fold training for a single model on 2 GPUs. Here ``configs`` is used to specify the configurations.
  
      .. code-block:: bash
  
          python -m monai.apps.nnunet nnUNetV2Runner train --input_config "./input.yaml" \
              --configs "3d_fullres" \
              --trainer_class_name "nnUNetTrainer_5epochs" \
              --export_validation_probabilities True \
              --gpu_id_for_all "0,1"
  
      - find the best configuration
  
      .. code-block:: bash
  
          python -m monai.apps.nnunet nnUNetV2Runner find_best_configuration --input_config "./input.yaml"
  
      - predict, ensemble, and post-process
  
      .. code-block:: bash
  
          python -m monai.apps.nnunet nnUNetV2Runner predict_ensemble_postprocessing --input_config "./input.yaml"
class_docstr_tok: ["``","nnUNetV2Runner","``","provides","an","interface","in","MONAI","to","use","`","nnU-Net","`","V2","library","to","analyze",",","train",",","and","evaluate","neural","networks","for","medical","image","segmentation","tasks",".","``","nnUNetV2Runner","``","can","be","used","in","two","ways",":","#",".","with","one","line","of","code","to","execute","the","complete","pipeline",".","#",".","with","a","series","of","commands","to","run","each","modules","in","the","pipeline",".","The","output","of","the","interface","is","a","directory","that","contains",":","#",".","converted","dataset","met","the","requirement","of","nnU-Net","V2","#",".","data","analysis","results","#",".","checkpoints","from","the","trained","U-Net","models","#",".","validation","accuracy","in","each","fold","of","cross-validation","#",".","the","predictions","on","the","testing","datasets","from","the","final","algorithm","ensemble","and","potential","post-processing","Args",":","input_config",":","the","configuration","dictionary","or","the","file","path","to","the","configuration","in","the","form","of","YAML",".","The","keys","required","in","the","configuration","are",":","-","``","``","datalist","''","``",":","File","path","to","the","datalist","for","the","train\/testing","splits","-","``","``","dataroot","''","``",":","File","path","to","the","dataset","-","``","``","modality","''","``",":","Imaging","modality",",","e.g",".","``","CT","''",",","[","``","T2","''",",","``","ADC","''","]","Currently",",","the","configuration","supports","these","optional","keys",":","-","``","``","nnunet_raw","''","``",":","File","path","that","will","be","written","to","env","variable","for","nnU-Net","-","``","``","nnunet_preprocessed","''","``",":","File","path","that","will","be","written","to","env","variable","for","nnU-Net","-","``","``","nnunet_results","''","``",":","File","path","that","will","be","written","to","env","variable","for","nnU-Net","-","``","``","nnUNet_trained_models","''","``","-","``","``","dataset_name_or_id","''","``",":","Name","or","Integer","ID","of","the","dataset","If","an","optional","key","is","not","specified",",","then","the","pipeline","will","use","the","default","values",".","trainer_class_name",":","the","trainer","class","names","offered","by","nnUNetV2","exhibit","variations","in","training","duration",".","Default",":","``","nnUNetTrainer","''",".","Other","options",":","``","nnUNetTrainer_Xepoch","''",".","X","could","be","one","of","1,5,10,20,50,100",",","250,2000,4000,8000.","export_validation_probabilities",":","True","to","save","softmax","predictions","from","final","validation","as","npz","files","(","in","addition","to","predicted","segmentations",")",".","Needed","for","finding","the","best","ensemble",".","Default",":","True",".","work_dir",":","working","directory","to","save","the","intermediate","and","final","results",".","Examples",":","-","Use","the","one-liner","to","start","the","nnU-Net","workflow","..","code-block",":",":","bash","python","-m","monai.apps.nnunet","nnUNetV2Runner","run","--","input_config",".\/input.yaml","-","Use","`","convert_dataset","`","to","prepare","the","data","to","meet","nnU-Net","requirements",",","generate","dataset","JSON","file",",","and","copy","the","dataset","to","a","location","specified","by","``","nnunet_raw","``","in","the","input","config","file","..","code-block",":",":","bash","python","-m","monai.apps.nnunet","nnUNetV2Runner","convert_dataset","--","input_config=","''",".\/input.yaml","''","-","`","convert_msd_dataset","`","is","an","alternative","option","to","prepare","the","data","if","the","dataset","is","MSD",".","..","code-block",":",":","bash","python","-m","monai.apps.nnunet","nnUNetV2Runner","convert_msd_dataset","\\","--","input_config","``",".\/input.yaml","''","--","data_dir","``","\/path\/to\/Task09_Spleen","''","-","experiment","planning","and","data","pre-processing","..","code-block",":",":","bash","python","-m","monai.apps.nnunet","nnUNetV2Runner","plan_and_process","--","input_config","``",".\/input.yaml","''","-","training","all","20","models","using","all","GPUs","available",".","``","CUDA_VISIBLE_DEVICES","''","environment","variable","is","not","supported",".","..","code-block",":",":","bash","python","-m","monai.apps.nnunet","nnUNetV2Runner","train","--","input_config","``",".\/input.yaml","''","-","training","a","single","model","on","a","single","GPU","for","5","epochs",".","Here","``","config","``","is","used","to","specify","the","configuration",".","..","code-block",":",":","bash","python","-m","monai.apps.nnunet","nnUNetV2Runner","train_single_model","--","input_config","``",".\/input.yaml","''","\\","--","config","``","3d_fullres","''","\\","--","fold","0","\\","--","gpu_id","0","\\","--","trainer_class_name","``","nnUNetTrainer_5epochs","''","\\","--","export_validation_probabilities","True","-","training","for","all","20","models","(","4","configurations","by","5","folds",")","on","2","GPUs","..","code-block",":",":","bash","python","-m","monai.apps.nnunet","nnUNetV2Runner","train","--","input_config","``",".\/input.yaml","''","--","gpu_id_for_all","``","0,1","''","-","5-fold","training","for","a","single","model","on","2","GPUs",".","Here","``","configs","``","is","used","to","specify","the","configurations",".","..","code-block",":",":","bash","python","-m","monai.apps.nnunet","nnUNetV2Runner","train","--","input_config","``",".\/input.yaml","''","\\","--","configs","``","3d_fullres","''","\\","--","trainer_class_name","``","nnUNetTrainer_5epochs","''","\\","--","export_validation_probabilities","True","\\","--","gpu_id_for_all","``","0,1","''","-","find","the","best","configuration","..","code-block",":",":","bash","python","-m","monai.apps.nnunet","nnUNetV2Runner","find_best_configuration","--","input_config","``",".\/input.yaml","''","-","predict",",","ensemble",",","and","post-process","..","code-block",":",":","bash","python","-m","monai.apps.nnunet","nnUNetV2Runner","predict_ensemble_postprocessing","--","input_config","``",".\/input.yaml","''"]
docstr: Performs experiment planning and preprocessing before the training.
  
  Args:
      fpe: [OPTIONAL] Name of the Dataset Fingerprint Extractor class that should be used. Default is
          "DatasetFingerprintExtractor".
      npfp: [OPTIONAL] Number of processes used for fingerprint extraction. Default: 8.
      verify_dataset_integrity: [RECOMMENDED] set this flag to check the dataset integrity.
          This is useful and should be done once for each dataset!
      no_pp: [OPTIONAL] Set this to only run fingerprint extraction and experiment planning (no
          preprocessing). Useful for debugging.
      clean:[OPTIONAL] Set this flag to overwrite existing fingerprints. If this flag is not set and a
          fingerprint already exists, the fingerprint extractor will not run. REQUIRED IF YOU
          CHANGE THE DATASET FINGERPRINT EXTRACTOR OR MAKE CHANGES TO THE DATASET!
      pl: [OPTIONAL] Name of the Experiment Planner class that should be used. Default is "ExperimentPlanner".
          Note: There is no longer a distinction between 2d and 3d planner. It's an all-in-one solution now.
      gpu_memory_target: [OPTIONAL] DANGER ZONE! Sets a custom GPU memory target. Default: 8 [GB].
          Changing this will affect patch and batch size and will
          definitely affect your models' performance! Only use this if you really know what you
          are doing and NEVER use this without running the default nnU-Net first (as a baseline).
      preprocessor_name: [OPTIONAL] DANGER ZONE! Sets a custom preprocessor class. This class must be located in
          nnunetv2.preprocessing. Default: "DefaultPreprocessor". Changing this may affect your
          models' performance! Only use this if you really know what you
          are doing and NEVER use this without running the default nnU-Net first (as a baseline).
      overwrite_target_spacing: [OPTIONAL] DANGER ZONE! Sets a custom target spacing for the 3d_fullres and
          3d_cascade_fullres configurations. Default: None [no changes]. Changing this will affect image size and
          potentially patch and batch size. This will definitely affect your models performance!
          Only use this if you really know what you are doing and NEVER use this without running the
          default nnU-Net first (as a baseline). Changing the target spacing for the other
          configurations is currently not implemented. New target spacing must be a list of three numbers!
      overwrite_plans_name: [OPTIONAL] USE A CUSTOM PLANS IDENTIFIER. If you used -gpu_memory_target,
          -preprocessor_name or -overwrite_target_spacing it is best practice to use -overwrite_plans_name to
          generate a differently named plans file such that the nnunet default plans are not
          overwritten. You will then need to specify your custom plans file with -p whenever
          running other nnunet commands (training, inference, etc)
      c: [OPTIONAL] Configurations for which the preprocessing should be run. Default: 2d 3f_fullres
          3d_lowres. 3d_cascade_fullres does not need to be specified because it uses the data
          from 3f_fullres. Configurations that do not exist for some datasets will be skipped.
      n_proc: [OPTIONAL] Use this to define how many processes are to be used. If this is just one number then
          this number of processes is used for all configurations specified with -c. If it's a
          list of numbers this list must have as many elements as there are configurations. We
          then iterate over zip(configs, num_processes) to determine the number of processes
          used for each configuration. More processes are always faster (up to the number of
          threads your PC can support, so 8 for a 4-core CPU with hyperthreading. If you don't
          know what that is then don't touch it, or at least don't increase it!). DANGER: More
          often than not the number of processes that can be used is limited by the amount of
          RAM available. Image resampling takes up a lot of RAM. MONITOR RAM USAGE AND
          DECREASE -n_proc IF YOUR RAM FILLS UP TOO MUCH! Default: 8 4 8 (=8 processes for 2d, 4
          for 3d_fullres and 8 for 3d_lowres if -c is at its default).
      verbose: Set this to print a lot of stuff. Useful for debugging. Will disable progress bar!
          (Recommended for cluster environments).
docstr_tok: ["Performs","experiment","planning","and","preprocessing","before","the","training",".","Args",":","fpe",":","[","OPTIONAL","]","Name","of","the","Dataset","Fingerprint","Extractor","class","that","should","be","used",".","Default","is","``","DatasetFingerprintExtractor","''",".","npfp",":","[","OPTIONAL","]","Number","of","processes","used","for","fingerprint","extraction",".","Default",":","8.","verify_dataset_integrity",":","[","RECOMMENDED","]","set","this","flag","to","check","the","dataset","integrity",".","This","is","useful","and","should","be","done","once","for","each","dataset","!","no_pp",":","[","OPTIONAL","]","Set","this","to","only","run","fingerprint","extraction","and","experiment","planning","(","no","preprocessing",")",".","Useful","for","debugging",".","clean",":","[","OPTIONAL","]","Set","this","flag","to","overwrite","existing","fingerprints",".","If","this","flag","is","not","set","and","a","fingerprint","already","exists",",","the","fingerprint","extractor","will","not","run",".","REQUIRED","IF","YOU","CHANGE","THE","DATASET","FINGERPRINT","EXTRACTOR","OR","MAKE","CHANGES","TO","THE","DATASET","!","pl",":","[","OPTIONAL","]","Name","of","the","Experiment","Planner","class","that","should","be","used",".","Default","is","``","ExperimentPlanner","''",".","Note",":","There","is","no","longer","a","distinction","between","2d","and","3d","planner",".","It","'s","an","all-in-one","solution","now",".","gpu_memory_target",":","[","OPTIONAL","]","DANGER","ZONE","!","Sets","a","custom","GPU","memory","target",".","Default",":","8","[","GB","]",".","Changing","this","will","affect","patch","and","batch","size","and","will","definitely","affect","your","models","'","performance","!","Only","use","this","if","you","really","know","what","you","are","doing","and","NEVER","use","this","without","running","the","default","nnU-Net","first","(","as","a","baseline",")",".","preprocessor_name",":","[","OPTIONAL","]","DANGER","ZONE","!","Sets","a","custom","preprocessor","class",".","This","class","must","be","located","in","nnunetv2.preprocessing",".","Default",":","``","DefaultPreprocessor","''",".","Changing","this","may","affect","your","models","'","performance","!","Only","use","this","if","you","really","know","what","you","are","doing","and","NEVER","use","this","without","running","the","default","nnU-Net","first","(","as","a","baseline",")",".","overwrite_target_spacing",":","[","OPTIONAL","]","DANGER","ZONE","!","Sets","a","custom","target","spacing","for","the","3d_fullres","and","3d_cascade_fullres","configurations",".","Default",":","None","[","no","changes","]",".","Changing","this","will","affect","image","size","and","potentially","patch","and","batch","size",".","This","will","definitely","affect","your","models","performance","!","Only","use","this","if","you","really","know","what","you","are","doing","and","NEVER","use","this","without","running","the","default","nnU-Net","first","(","as","a","baseline",")",".","Changing","the","target","spacing","for","the","other","configurations","is","currently","not","implemented",".","New","target","spacing","must","be","a","list","of","three","numbers","!","overwrite_plans_name",":","[","OPTIONAL","]","USE","A","CUSTOM","PLANS","IDENTIFIER",".","If","you","used","-gpu_memory_target",",","-preprocessor_name","or","-overwrite_target_spacing","it","is","best","practice","to","use","-overwrite_plans_name","to","generate","a","differently","named","plans","file","such","that","the","nnunet","default","plans","are","not","overwritten",".","You","will","then","need","to","specify","your","custom","plans","file","with","-p","whenever","running","other","nnunet","commands","(","training",",","inference",",","etc",")","c",":","[","OPTIONAL","]","Configurations","for","which","the","preprocessing","should","be","run",".","Default",":","2d","3f_fullres","3d_lowres",".","3d_cascade_fullres","does","not","need","to","be","specified","because","it","uses","the","data","from","3f_fullres",".","Configurations","that","do","not","exist","for","some","datasets","will","be","skipped",".","n_proc",":","[","OPTIONAL","]","Use","this","to","define","how","many","processes","are","to","be","used",".","If","this","is","just","one","number","then","this","number","of","processes","is","used","for","all","configurations","specified","with","-c.","If","it","'s","a","list","of","numbers","this","list","must","have","as","many","elements","as","there","are","configurations",".","We","then","iterate","over","zip","(","configs",",","num_processes",")","to","determine","the","number","of","processes","used","for","each","configuration",".","More","processes","are","always","faster","(","up","to","the","number","of","threads","your","PC","can","support",",","so","8","for","a","4-core","CPU","with","hyperthreading",".","If","you","don't","know","what","that","is","then","do","n't","touch","it",",","or","at","least","do","n't","increase","it","!",")",".","DANGER",":","More","often","than","not","the","number","of","processes","that","can","be","used","is","limited","by","the","amount","of","RAM","available",".","Image","resampling","takes","up","a","lot","of","RAM",".","MONITOR","RAM","USAGE","AND","DECREASE","-n_proc","IF","YOUR","RAM","FILLS","UP","TOO","MUCH","!","Default",":","8","4","8","(","=8","processes","for","2d",",","4","for","3d_fullres","and","8","for","3d_lowres","if","-c","is","at","its","default",")",".","verbose",":","Set","this","to","print","a","lot","of","stuff",".","Useful","for","debugging",".","Will","disable","progress","bar","!","(","Recommended","for","cluster","environments",")","."]
code: def plan_and_process(
      self,
      fpe: str = "DatasetFingerprintExtractor",
      npfp: int = 8,
      verify_dataset_integrity: bool = False,
      no_pp: bool = False,
      clean: bool = False,
      pl: str = "ExperimentPlanner",
      gpu_memory_target: int = 8,
      preprocessor_name: str = "DefaultPreprocessor",
      overwrite_target_spacing: Any = None,
      overwrite_plans_name: str = "nnUNetPlans",
      c: tuple = (M.N_2D, M.N_3D_FULLRES, M.N_3D_LOWRES),
      n_proc: tuple = (8, 8, 8),
      verbose: bool = False,
  ) -> None:
      """
      Performs experiment planning and preprocessing before the training.
  
      Args:
          fpe: [OPTIONAL] Name of the Dataset Fingerprint Extractor class that should be used. Default is
              "DatasetFingerprintExtractor".
          npfp: [OPTIONAL] Number of processes used for fingerprint extraction. Default: 8.
          verify_dataset_integrity: [RECOMMENDED] set this flag to check the dataset integrity.
              This is useful and should be done once for each dataset!
          no_pp: [OPTIONAL] Set this to only run fingerprint extraction and experiment planning (no
              preprocessing). Useful for debugging.
          clean:[OPTIONAL] Set this flag to overwrite existing fingerprints. If this flag is not set and a
              fingerprint already exists, the fingerprint extractor will not run. REQUIRED IF YOU
              CHANGE THE DATASET FINGERPRINT EXTRACTOR OR MAKE CHANGES TO THE DATASET!
          pl: [OPTIONAL] Name of the Experiment Planner class that should be used. Default is "ExperimentPlanner".
              Note: There is no longer a distinction between 2d and 3d planner. It's an all-in-one solution now.
          gpu_memory_target: [OPTIONAL] DANGER ZONE! Sets a custom GPU memory target. Default: 8 [GB].
              Changing this will affect patch and batch size and will
              definitely affect your models' performance! Only use this if you really know what you
              are doing and NEVER use this without running the default nnU-Net first (as a baseline).
          preprocessor_name: [OPTIONAL] DANGER ZONE! Sets a custom preprocessor class. This class must be located in
              nnunetv2.preprocessing. Default: "DefaultPreprocessor". Changing this may affect your
              models' performance! Only use this if you really know what you
              are doing and NEVER use this without running the default nnU-Net first (as a baseline).
          overwrite_target_spacing: [OPTIONAL] DANGER ZONE! Sets a custom target spacing for the 3d_fullres and
              3d_cascade_fullres configurations. Default: None [no changes]. Changing this will affect image size and
              potentially patch and batch size. This will definitely affect your models performance!
              Only use this if you really know what you are doing and NEVER use this without running the
              default nnU-Net first (as a baseline). Changing the target spacing for the other
              configurations is currently not implemented. New target spacing must be a list of three numbers!
          overwrite_plans_name: [OPTIONAL] USE A CUSTOM PLANS IDENTIFIER. If you used -gpu_memory_target,
              -preprocessor_name or -overwrite_target_spacing it is best practice to use -overwrite_plans_name to
              generate a differently named plans file such that the nnunet default plans are not
              overwritten. You will then need to specify your custom plans file with -p whenever
              running other nnunet commands (training, inference, etc)
          c: [OPTIONAL] Configurations for which the preprocessing should be run. Default: 2d 3f_fullres
              3d_lowres. 3d_cascade_fullres does not need to be specified because it uses the data
              from 3f_fullres. Configurations that do not exist for some datasets will be skipped.
          n_proc: [OPTIONAL] Use this to define how many processes are to be used. If this is just one number then
              this number of processes is used for all configurations specified with -c. If it's a
              list of numbers this list must have as many elements as there are configurations. We
              then iterate over zip(configs, num_processes) to determine the number of processes
              used for each configuration. More processes are always faster (up to the number of
              threads your PC can support, so 8 for a 4-core CPU with hyperthreading. If you don't
              know what that is then don't touch it, or at least don't increase it!). DANGER: More
              often than not the number of processes that can be used is limited by the amount of
              RAM available. Image resampling takes up a lot of RAM. MONITOR RAM USAGE AND
              DECREASE -n_proc IF YOUR RAM FILLS UP TOO MUCH! Default: 8 4 8 (=8 processes for 2d, 4
              for 3d_fullres and 8 for 3d_lowres if -c is at its default).
          verbose: Set this to print a lot of stuff. Useful for debugging. Will disable progress bar!
              (Recommended for cluster environments).
      """
      self.extract_fingerprints(
          fpe, npfp, verify_dataset_integrity, clean, verbose
      )
      self.plan_experiments(
          pl,
          gpu_memory_target,
          preprocessor_name,
          overwrite_target_spacing,
          overwrite_plans_name,
      )
  
      if not no_pp:
          self.preprocess(c, n_proc, overwrite_plans_name, verbose)
  
imports: from __future__ import annotations
  import glob
  import os
  import subprocess
  from typing import Any
  import monai
  from monai.apps.nnunet.utils import NNUNETMode
  from monai.apps.nnunet.utils import analyze_data, create_new_data_copy, create_new_dataset_json
  from monai.bundle import ConfigParser
  from monai.utils import ensure_tuple, optional_import
label_desc: Use image node_id 7 for calling the nnUNetV2Runner obj's underlying member method code with example usage: obj.plan_and_process(fpe, npfp, verify_dataset_integrity, no_pp, clean, pl, gpu_memory_target, preprocessor_name, overwrite_target_spacing, overwrite_plans_name, c, n_proc, verbose) without return types