docs: def _create_pax_generic_header(cls, pax_headers, type=tarfile.XHDTYPE):
      """Return a POSIX.1-2001 extended or global header sequence
         that contains a list of keyword, value pairs. The values
         must be unicode objects.
      """
      records = []
      for keyword, value in pax_headers.iteritems():
  
          try:
              keyword = keyword.encode("utf8")
          except Exception:
              pass
  
          try:
              value = value.encode("utf8")
          except Exception:
              pass
  
          l = len(keyword) + len(value) + 3   # ' ' + '=' + '\n'
          n = p = 0
          while True:
              n = l + len(str(p))
              if n == p:
                  break
              p = n
          records.append("%d %s=%s\n" % (p, keyword, value))
      records = "".join(records)
  
      # We use a hardcoded "././@PaxHeader" name like star does
      # instead of the one that POSIX recommends.
      info = {}
      info["name"] = "././@PaxHeader"
      info["type"] = type
      info["size"] = len(records)
      info["magic"] = tarfile.POSIX_MAGIC
  
      # Create pax header + record blocks.
      return cls._create_header(info, tarfile.USTAR_FORMAT) + \
          cls._create_payload(records)