human
I wrote the below code

    cls_iter = (list, tuple)
    if isinstance(old_name, cls_iter):
        n = len(old_name)
        if (not isinstance(arg_in_kwargs, cls_iter)):
            arg_in_kwargs = ([arg_in_kwargs] * n)
        if (not isinstance(relax, cls_iter)):
            relax = ([relax] * n)
        if (not isinstance(pending, cls_iter)):
            pending = ([pending] * n)
    else:
        n = 1
        old_name = [old_name]
        new_name = [new_name]
        since = [since]
        arg_in_kwargs = [arg_in_kwargs]
        relax = [relax]
        pending = [pending]
    def decorator(function):
        from .compat.funcsigs import signature
        arguments = signature(function).parameters
        keys = list(arguments.keys())
        position = ([None] * n)
        for i in range(n):
            if (new_name[i] in arguments):
                param = arguments[new_name[i]]
                if (param.kind == param.POSITIONAL_OR_KEYWORD):
                    position[i] = keys.index(new_name[i])
                elif (param.kind == param.KEYWORD_ONLY):
                    position[i] = None
                else:
                    raise TypeError('cannot    replace    argument    "{0}"    of    kind    {1!r}.'.format(new_name[i], param.kind))
            elif arg_in_kwargs[i]:
                position[i] = None
            else:
                raise TypeError('"{}"    was    not    specified    in    the    function    signature.    If    it    was    meant    to    be    part    of    "**kwargs"    then    set    "arg_in_kwargs"    to    "True".'.format(new_name[i]))
        @functools.wraps(function)
        def wrapper(*args, **kwargs):
            for i in range(n):
                if (old_name[i] in kwargs):
                    value = kwargs.pop(old_name[i])
                    if (not pending[i]):
                        warnings.warn('"{0}"    was    deprecated    in    version    {1}    and    will    be    removed    in    a    future    version.    Use    argument    "{2}"    instead.'.format(old_name[i],...

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

def deprecated_renamed_argument(old_name, new_name, since, arg_in_kwargs=False, relax=False, pending=False):