docs: def processFiles(args):
      """
      Generates and error checks each file's information before the compilation actually starts
      """
      to_process = []
  
      for filename in args['filenames']:
          file = dict()
  
          if args['include']:
              file['include'] = INCLUDE_STRING + ''.join(
                  ['-I' + item for item in args['include']])
          else:
              file['include'] = INCLUDE_STRING
  
          file['file_path'] = getPath(filename)
          file['file_base_name'] = \
          os.path.splitext(os.path.basename(file['file_path']))[0]
          file['no_extension'], file['extension'] = os.path.splitext(
              file['file_path'])
          if file['extension'] not in CYTHONIZABLE_FILE_EXTS:
              raise CytherError(
                  "The file '{}' is not a designated cython file".format(
                      file['file_path']))
          base_path = os.path.dirname(file['file_path'])
          local_build = args['local']
          if not local_build:
              cache_name = os.path.join(base_path, '__cythercache__')
              os.makedirs(cache_name, exist_ok=True)
              file['c_name'] = os.path.join(cache_name,
                                            file['file_base_name']) + '.c'
          else:
              file['c_name'] = file['no_extension'] + '.c'
          file['object_file_name'] = os.path.splitext(file['c_name'])[0] + '.o'
          output_name = args['output_name']
          if args['watch']:
              file['output_name'] = file['no_extension']+DEFAULT_OUTPUT_EXTENSION
          elif output_name:
              if os.path.exists(output_name) and os.path.isfile(output_name):
                  file['output_name'] = output_name
              else:
                  dirname = os.path.dirname(output_name)
                  if not dirname:
                      dirname = os.getcwd()
                  if os.path.exists(dirname):
                      file['output_name'] = output_name
                  else:
                      raise CytherError('The directory specified to write'
                                        'the output file in does not exist')
          else:
              file['output_name'] = file['no_extension']+DEFAULT_OUTPUT_EXTENSION
  
          file['stamp_if_error'] = 0
          to_process.append(file)
      return to_process