human
I wrote the below code

    def g(*g_args, **g_kwargs):
        new_kwargs = kwargs.copy()
        new_kwargs.update(g_kwargs)
        return f(*(args + g_args), **g_kwargs)
    g.f = f
    g.args = args
    g.kwargs = kwargs
    return g

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

def partial(f, *args, **kwargs):