human
Here's a good function header given the following:
I wrote the below code

    _check_unknown_options(unknown_options)
    epsilon = eps
    maxfun = maxiter
    fmin = minfev
    pgtol = gtol
    x0 = asfarray(x0).flatten()
    n = len(x0)
    if (bounds is None):
        bounds = ([(None, None)] * n)
    if (len(bounds) != n):
        raise ValueError('length    of    x0    !=    length    of    bounds')
    if (mesg_num is not None):
        messages = {0: MSG_NONE, 1: MSG_ITER, 2: MSG_INFO, 3: MSG_VERS, 4: MSG_EXIT, 5: MSG_ALL}.get(mesg_num, MSG_ALL)
    elif disp:
        messages = MSG_ALL
    else:
        messages = MSG_NONE
    if (jac is None):
        def func_and_grad(x):
            f = fun(x, *args)
            g = approx_fprime(x, fun, epsilon, *args)
            return (f, g)
    else:
        def func_and_grad(x):
            f = fun(x, *args)
            g = jac(x, *args)
            return (f, g)
    '\n                low,    up            :    the    bounds    (lists    of    floats)\n                                                                if    low    is    None,    the    lower    bounds    are    removed.\n                                                                if    up    is    None,    the    upper    bounds    are    removed.\n                                                                low    and    up    defaults    to    None\n                '
    low = zeros(n)
    up = zeros(n)
    for i in range(n):
        if (bounds[i] is None):
            (l, u) = ((- inf), inf)
        else:
            (l, u) = bounds[i]
            if (l is None):
                low[i] = (- inf)
            else:
                low[i] = l
            if (u is None):
                up[i] = inf
            else:
                up[i] = u
    if (scale is None):
        scale = array([])
    if (offset is None):
        offset = array([])
    if (maxfun is None):
        maxfun = max(100, (10 * len(x0)))
    (rc, nf, nit, x) = moduleTNC.minimize(func_and_grad, x0, low, up, scale, offset, messages, maxCGit, maxfun, eta, stepmx, accuracy, fmin, ftol, xtol,...

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

def _minimize_tnc(fun, x0, args=(), jac=None, bounds=None, eps=1e-08, scale=None, offset=None, mesg_num=None, maxCGit=(-1), maxiter=None, eta=(-1), stepmx=0, accuracy=0, minfev=0, ftol=(-1), xtol=(-1), gtol=(-1), rescale=(-1), disp=False, callback=None, **unknown_options):