@classmethod
def decode_source(cls, source):
    """Decode source to unicode.

        :param source: source string (may already be unicode).

        If the ``source`` string contains a coding specification
        within the first two lines, the specified coding is used,
        otherwise, ``UTF-8`` is applied.
        """
    if not source:
        return cls.uc('')
    if not isinstance(source, cls.uc_type) and hasattr(source, 'decode'):
        source = source.decode(cls.check_coding(source))
    return source
