code: def rewrite_record(bdist_dir):
      
      info_dirs = glob.glob(pjoin(bdist_dir, '*.dist-info'))
      if len(info_dirs) != 1:
          raise WheelToolsError("Should be exactly one `*.dist_info` directory")
      record_path = pjoin(info_dirs[0], 'RECORD')
      record_relpath = relpath(record_path, bdist_dir)
      # Unsign wheel - because we're invalidating the record hash
      sig_path = pjoin(info_dirs[0], 'RECORD.jws')
      if exists(sig_path):
          os.unlink(sig_path)
  
      def walk():
          for dir, dirs, files in os.walk(bdist_dir):
              for f in files:
                  yield pjoin(dir, f)
  
      def skip(path):
          """Wheel hashes every possible file."""
          return (path == record_relpath)
  
      with _open_for_csv(record_path, 'w+') as record_file:
          writer = csv.writer(record_file)
          for path in walk():
              relative_path = relpath(path, bdist_dir)
              if skip(relative_path):
                  hash = ''
                  size = ''
              else:
                  with open(path, 'rb') as f:
                      data = f.read()
                  digest = hashlib.sha256(data).digest()
                  hash = 'sha256=' + native(urlsafe_b64encode(digest))
                  size = len(data)
              path_for_record = relpath(
                  path, bdist_dir).replace(psep, '/')
              writer.writerow((path_for_record, hash, size))
docs: Rewrite RECORD file with hashes for all files in `wheel_sdir`
  
      Copied from :method:`wheel.bdist_wheel.bdist_wheel.write_record`
  
      Will also unsign wheel
  
      Parameters
      ----------
      bdist_dir : str
          Path of unpacked wheel file