docs: def compare(sig1, sig2):
      """
      Computes the match score between two fuzzy hash signatures.
  
      Returns a value from zero to 100 indicating the match score of the
      two signatures. A match score of zero indicates the signatures
      did not match.
  
      :param Bytes|String sig1: First fuzzy hash signature
      :param Bytes|String sig2: Second fuzzy hash signature
      :return: Match score (0-100)
      :rtype: Integer
      :raises InternalError: If lib returns an internal error
      :raises TypeError: If sig is not String, Unicode or Bytes
  
      """
  
      if isinstance(sig1, six.text_type):
          sig1 = sig1.encode("ascii")
      if isinstance(sig2, six.text_type):
          sig2 = sig2.encode("ascii")
  
      if not isinstance(sig1, six.binary_type):
          raise TypeError(
              "First argument must be of string, unicode or bytes type not "
              "'%s'" % type(sig1)
          )
  
      if not isinstance(sig2, six.binary_type):
          raise TypeError(
              "Second argument must be of string, unicode or bytes type not "
              "'%r'" % type(sig2)
          )
  
      res = binding.lib.fuzzy_compare(sig1, sig2)
      if res < 0:
          raise InternalError("Function returned an unexpected error code")
  
      return res