human
I wrote the below code

    bom_found = False
    encoding = None
    default = 'utf-8'
    def read_or_stop():
        try:
            return readline()
        except StopIteration:
            return bytes()
    def find_cookie(line):
        try:
            line_string = line.decode('ascii')
        except UnicodeDecodeError:
            return None
        matches = cookie_re.findall(line_string)
        if (not matches):
            return None
        else:
            encoding = _get_normal_name(matches[0])
            try:
                codec = lookup(encoding)
            except LookupError:
                raise SyntaxError(('unknown    encoding:    ' + encoding))
            if bom_found:
                if (codec.name != 'utf-8'):
                    raise SyntaxError('encoding    problem:    utf-8')
                encoding += '-sig'
            return encoding
    first = read_or_stop()
    if first.startswith(BOM_UTF8):
        bom_found = True
        first = first[3:]
        default = 'utf-8-sig'
    if (not first):
        return (default, [])
    else:
        encoding = find_cookie(first)
        if encoding:
            return (encoding, [first])
        second = read_or_stop()
        if (not second):
            return (default, [first])
        encoding = find_cookie(second)
        if encoding:
            return (encoding, [first, second])
        return (default, [first, second])

What's a good function header?

=====
Here's a good function header?
assistant
#Here's a good function header.

def detect_encoding(readline):