human
I wrote the below code

    if isinstance(key, six.string_types):
        key = (key,)
    for name in key:
        if (name not in r1.dtype.names):
            raise ValueError((u'r1    does    not    have    key    field    %s' % name))
        if (name not in r2.dtype.names):
            raise ValueError((u'r2    does    not    have    key    field    %s' % name))
    def makekey(row):
        return tuple([row[name] for name in key])
    r1d = {makekey(row): i for (i, row) in enumerate(r1)}
    r2d = {makekey(row): i for (i, row) in enumerate(r2)}
    r1keys = set(r1d)
    r2keys = set(r2d)
    common_keys = (r1keys & r2keys)
    r1ind = np.array([r1d[k] for k in common_keys])
    r2ind = np.array([r2d[k] for k in common_keys])
    common_len = len(common_keys)
    left_len = right_len = 0
    if ((jointype == u'outer') or (jointype == u'leftouter')):
        left_keys = r1keys.difference(r2keys)
        left_ind = np.array([r1d[k] for k in left_keys])
        left_len = len(left_ind)
    if (jointype == u'outer'):
        right_keys = r2keys.difference(r1keys)
        right_ind = np.array([r2d[k] for k in right_keys])
        right_len = len(right_ind)
    def key_desc(name):
        u'\n                                if    name    is    a    string    key,    use    the    larger    size    of    r1    or    r2    before\n                                merging\n                                '
        dt1 = r1.dtype[name]
        if (dt1.type != np.string_):
            return (name, dt1.descr[0][1])
        dt2 = r2.dtype[name]
        if (dt1 != dt2):
            msg = u"The    '{0}'    fields    in    arrays    'r1'    and    'r2'    must    have    the    same"
            msg += u'    dtype.'
            raise ValueError(msg.format(name))
        if (dt1.num > dt2.num):
            return (name, dt1.descr[0][1])
        else:
            return (name, dt2.descr[0][1])
    keydesc = [key_desc(name) for name in key]
    def mapped_r1field(name):
        u'\n                                The    column    name    in   ...

What's a good function header?

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

def rec_join(key, r1, r2, jointype=u'inner', defaults=None, r1postfix=u'1', r2postfix=u'2'):