code: def generate_filenames(self, data, postprocessor_idx=None):
      output_filenames = []
      for idx in range(len(data["casename"])):
          casename = data["casename"][idx]
          augmentation_string = data[
              self.lead_key + "_augmentation_string"
          ][idx]
  
          if self.case_in_filename:
              fileparts = [casename, self.output_filename_base]
          else:
              fileparts = [self.output_filename_base]
  
          if augmentation_string != "":
              fileparts = fileparts + [augmentation_string]
          if postprocessor_idx is not None:
              if [
                  self.postprocessors[
                      postprocessor_idx
                  ].postprocessor_string
              ] != "":
                  fileparts = fileparts + [
                      self.postprocessors[
                          postprocessor_idx
                      ].postprocessor_string
                  ]
  
          output_filename = "_".join(fileparts)
  
          if self.output_extension not in [".csv"]:
              output_filename = os.path.join(
                  self.output_directory,
                  output_filename + self.output_extension,
              )
  
          output_filenames += [output_filename]
  
      return output_filenames
  
imports: import os
  import csv
  import numpy
  from collections import defaultdict
  from deepneuro.utilities.conversion import save_data
  from deepneuro.utilities.util import add_parameter, replace_suffix, nifti_splitext, additional_kwargs
  from deepneuro.utilities.visualize import check_data
label_desc: Use image node_id 8 for calling the Output obj's underlying member method code with example usage: obj.generate_filenames(data, postprocessor_idx) and returns: output_filenames