code: def _process_input_wcs(infiles, wcskey, updatewcs):
      
  
      # Run parseinput though it's likely already been done in processFilenames
      outfiles = parseinput.parseinput(infiles)[0]
  
      # Disable parallel processing here for now until hardware I/O gets "wider".
      # Since this part is IO bound, parallelizing doesn't help more than a little
      # in most cases, and may actually slow this down on some desktop nodes.
  #   cfgval_num_cores = None # get this from paramDict
  #   pool_size = util.get_pool_size(cfgval_num_cores, len(outfiles))
      pool_size = 1
  
      # do the WCS updating
      if wcskey in ['', ' ', 'INDEF', None]:
          if updatewcs:
              log.info('Updating input WCS using "updatewcs"')
      else:
          log.info('Resetting input WCS to be based on WCS key = %s' % wcskey)
  
      if pool_size > 1:
          log.info('Executing %d parallel workers' % pool_size)
          subprocs = []
          for fname in outfiles:
              p = multiprocessing.Process(target=_process_input_wcs_single,
                  name='processInput._process_input_wcs()', # for err msgs
                  args=(fname, wcskey, updatewcs) )
              subprocs.append(p)
          mputil.launch_and_wait(subprocs, pool_size) # blocks till all done
      else:
          log.info('Executing serially')
          for fname in outfiles:
              _process_input_wcs_single(fname, wcskey, updatewcs)
  
      return outfiles
docs: This is a subset of process_input(), for internal use only.  This is the
      portion of input handling which sets/updates WCS data, and is a performance
      hit - a target for parallelization. Returns the expanded list of filenames.