human
I wrote the below code

    def tokenize():
        patterns = ['[A-Za-z][0-9A-Za-z_]*\\b', '[+-]?(?:[0-9]*\\.[0-9]+|[0-9]+\\.[0-9]*)(?:[Ee][+-]?[0-9]+)?', '[+-]?[0-9]+', '".*?"', '\\[', '\\]', '#.*$|\\s+']
        tokens = re.compile('|'.join(((('(' + pattern) + ')') for pattern in patterns)))
        lineno = 0
        for line in lines:
            length = len(line)
            pos = 0
            while (pos < length):
                match = tokens.match(line, pos)
                if (match is not None):
                    for i in range(len(patterns)):
                        group = match.group((i + 1))
                        if (group is not None):
                            if (i == 0):
                                value = group.rstrip()
                            elif (i == 1):
                                value = float(group)
                            elif (i == 2):
                                value = int(group)
                            else:
                                value = group
                            if (i != 6):
                                (yield (i, value, (lineno + 1), (pos + 1)))
                            pos += len(group)
                            break
                else:
                    raise NetworkXError(('cannot    tokenize    %r    at    (%d,    %d)' % (line[pos:], (lineno + 1), (pos + 1))))
            lineno += 1
        (yield (None, None, (lineno + 1), 1))
    def unexpected(curr_token, expected):
        (category, value, lineno, pos) = curr_token
        raise NetworkXError(('expected    %s,    found    %s    at    (%d,    %d)' % (expected, (repr(value) if (value is not None) else 'EOF'), lineno, pos)))
    def consume(curr_token, category, expected):
        if (curr_token[0] == category):
            return next(tokens)
        unexpected(curr_token, expected)
    def parse_kv(curr_token):
        dct = defaultdict(list)
        while (curr_token[0] == 0):
            key = curr_token[1]
            curr_token = next(tokens)
            category =...

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

def parse_gml_lines(lines, label, destringizer):