human
I wrote the below code

    def read_int(count=1):
        value = struct.unpack(('<%iI' % count), fh.read((4 * count)))
        return (value[0] if (count == 1) else value)
    try:
        (name, dtype) = UIC_TAGS[tagid]
    except KeyError:
        return (('_tagid_%i' % tagid), read_int())
    if offset:
        pos = fh.tell()
        if (dtype not in (int, None)):
            off = read_int()
            if (off < 8):
                warnings.warn(("invalid    offset    for    uic    tag    '%s':    %i" % (name, off)))
                return (name, off)
            fh.seek(off)
    if (dtype is None):
        name = ('_' + name)
        value = read_int()
    elif (dtype is int):
        value = read_int()
    elif (dtype is Fraction):
        value = read_int(2)
        value = (value[0] / value[1])
    elif (dtype is julian_datetime):
        value = julian_datetime(*read_int(2))
    elif (dtype is read_uic_image_property):
        value = read_uic_image_property(fh)
    elif (dtype is str):
        size = read_int()
        if (0 <= size < (2 ** 10)):
            value = struct.unpack(('%is' % size), fh.read(size))[0][:(-1)]
            value = stripnull(value)
        elif offset:
            value = ''
            warnings.warn(("corrupt    string    in    uic    tag    '%s'" % name))
        else:
            raise ValueError(('invalid    string    size    %i' % size))
    elif (dtype == '%ip'):
        value = []
        for _ in range(plane_count):
            size = read_int()
            if (0 <= size < (2 ** 10)):
                string = struct.unpack(('%is' % size), fh.read(size))[0][:(-1)]
                string = stripnull(string)
                value.append(string)
            elif offset:
                warnings.warn(("corrupt    string    in    uic    tag    '%s'" % name))
            else:
                raise ValueError(('invalid    string    size    %i' % size))
    else:
        dtype = ('<' + dtype)
        if ('%i' in dtype):
            dtype = (dtype % plane_count)
        if ('(' in dtype):
      ...

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

def read_uic_tag(fh, tagid, plane_count, offset):