def METHOD_NAME(self, s, encoding=None):
    """
    Convert a string to unicode using the given encoding, and return it.
    This function uses the underlying to_unicode attribute.
    Arguments:
      s: a basestring instance to convert to unicode.  Unlike Python's
        built-in unicode() function, it is okay to pass unicode strings
        to this function.  (Passing a unicode string to Python's unicode()
        with the encoding argument throws the error, "TypeError: decoding
        Unicode is not supported.")
      encoding: the encoding to pass to the to_unicode attribute.
        Defaults to None.
    """
    if isinstance(s, METHOD_NAME):
        return METHOD_NAME(s)
    return self.to_unicode(s, encoding)