code: def backup_source_file(fname, options=None):
      
      opts = parse_options(options)
      backup_dir = opts.backup_dir
      assert os.path.exists(fname), \
          ("\n--%s-- Warning: File `%s' does not exist. . ." % (current_time(), fname))
      assert os.path.exists(os.path.abspath(backup_dir)), \
          ("\n--%s-- Warning: Directory `%s' does not exist. . ." % (current_time(), fname))
      backup_name = backup_dir + os.sep + os.path.split(fname)[1] + opts.backup_suffix
      try:
          shutil.copyfile(fname, backup_name)
      except IOError:
          message = "\n--%s-- Warning: Couldn't backup the file `%s' in `%s', check if you have enough permissions. "
          tpl = (current_time(), fname, backup_dir)
          sys.stderr.write(message % tpl)
docs: backup_source_file(fname : str)
  
      >>> backup_source_file('~/Desktop/lisp/test.lisp')
  
      Create a backup copy of the source file.