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

    def new_init(self, *args, **kwargs):
        'Initializer    for    a    GObject    based    classes    with    support    for    property\n                                sets    through    the    use    of    explicit    keyword    arguments.\n                                '
        if args:
            warnings.warn(('Using    positional    arguments    with    the    GObject    constructor    has    been    deprecated.    Please    specify    keyword(s)    for    "%s"    or    use    a    class    specific    constructor.    See:    https://wiki.gnome.org/PyGObject/InitializerDeprecations' % ',    '.join(arg_names[:len(args)])), category, stacklevel=stacklevel)
            new_kwargs = dict(zip(arg_names, args))
        else:
            new_kwargs = {}
        new_kwargs.update(kwargs)
        aliases_used = []
        for (key, alias) in deprecated_aliases.items():
            if (alias in new_kwargs):
                new_kwargs[key] = new_kwargs.pop(alias)
                aliases_used.append(key)
        if aliases_used:
            warnings.warn(('The    keyword(s)    "%s"    have    been    deprecated    in    favor    of    "%s"    respectively.    See:    https://wiki.gnome.org/PyGObject/InitializerDeprecations' % (',    '.join((deprecated_aliases[k] for k in sorted(aliases_used))), ',    '.join(sorted(aliases_used)))), category, stacklevel=stacklevel)
        defaults_used = []
        for (key, value) in deprecated_defaults.items():
            if (key not in new_kwargs):
                new_kwargs[key] = deprecated_defaults[key]
                defaults_used.append(key)
        if defaults_used:
            warnings.warn(('Initializer    is    relying    on    deprecated    non-standard    defaults.    Please    update    to    explicitly    use:    %s    See:    https://wiki.gnome.org/PyGObject/InitializerDeprecations' % ',    '.join((('%s=%s' % (k, deprecated_defaults[k])) for k in sorted(defaults_used)))), category, stacklevel=stacklevel)
        for key in ignore:
            if (key...

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

def deprecated_init(super_init_func, arg_names, ignore=tuple(), deprecated_aliases={}, deprecated_defaults={}, category=PyGIDeprecationWarning, stacklevel=2):