code: def process_infile(f, fileStore):
      
      # check if this has already been processed
      if isinstance(f, tuple):
          return f
      elif isinstance(f, list):
          return process_array_infile(f, fileStore)
      elif isinstance(f, basestring):
          return process_single_infile(f, fileStore)
      else:
          raise RuntimeError('Error processing file: '.format(str(f)))
docs: Takes an array of files or a single file and imports into the jobstore.
  
      This returns a tuple or an array of tuples replacing all previous path
      strings.  Toil does not preserve a file's original name upon import and
      so the tuple keeps track of this with the format: '(filepath, preserveThisFilename)'
  
      :param f: String or an Array.  The smallest element must be a string,
                so: an array of strings, an array of arrays of strings... etc.
      :param fileStore: The filestore object that is called to load files into the filestore.
      :return: A tuple or an array of tuples.