human
I wrote the below code

    image = np.asarray(image)
    dtypeobj_in = image.dtype
    dtypeobj_out = np.dtype(dtype)
    dtype_in = dtypeobj_in.type
    dtype_out = dtypeobj_out.type
    kind_in = dtypeobj_in.kind
    kind_out = dtypeobj_out.kind
    itemsize_in = dtypeobj_in.itemsize
    itemsize_out = dtypeobj_out.itemsize
    if (dtype_in == dtype_out):
        if force_copy:
            image = image.copy()
        return image
    if (not ((dtype_in in _supported_types) and (dtype_out in _supported_types))):
        raise ValueError('Can    not    convert    from    {}    to    {}.'.format(dtypeobj_in, dtypeobj_out))
    def sign_loss():
        warn('Possible    sign    loss    when    converting    negative    image    of    type    {}    to    positive    image    of    type    {}.'.format(dtypeobj_in, dtypeobj_out))
    def prec_loss():
        warn('Possible    precision    loss    when    converting    from    {}    to    {}'.format(dtypeobj_in, dtypeobj_out))
    def _dtype_itemsize(itemsize, *dtypes):
        return next((dt for dt in dtypes if (np.dtype(dt).itemsize >= itemsize)))
    def _dtype_bits(kind, bits, itemsize=1):
        def compare(x, y, kind='u'):
            if (kind == 'u'):
                return (x <= y)
            else:
                return (x < y)
        s = next((i for i in ((itemsize,) + (2, 4, 8)) if compare(bits, (i * 8), kind=kind)))
        return np.dtype((kind + str(s)))
    def _scale(a, n, m, copy=True):
        'Scale    an    array    of    unsigned/positive    integers    from    `n`    to    `m`    bits.\n\n                                Numbers    can    be    represented    exactly    only    if    `m`    is    a    multiple    of    `n`.\n\n                                Parameters\n                                ----------\n                                a    :    ndarray\n                                                Input    image    array.\n                                n    :    int\n                                                Number    of    bits    currently...

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

def convert(image, dtype, force_copy=False, uniform=False):