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

    def convert_file_args(args, kwargs):
        filething = (args[0] if args else None)
        filename = kwargs.pop('filename', None)
        fileobj = kwargs.pop('fileobj', None)
        return (filething, filename, fileobj, args[1:], kwargs)
    def wrap(func):
        @wraps(func)
        def wrapper(self, *args, **kwargs):
            (filething, filename, fileobj, args, kwargs) = convert_file_args(args, kwargs)
            with _openfile(self, filething, filename, fileobj, writable, create) as h:
                return func(self, h, *args, **kwargs)
        @wraps(func)
        def wrapper_func(*args, **kwargs):
            (filething, filename, fileobj, args, kwargs) = convert_file_args(args, kwargs)
            with _openfile(None, filething, filename, fileobj, writable, create) as h:
                return func(h, *args, **kwargs)
        return (wrapper if method else wrapper_func)
    return wrap

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

def loadfile(method=True, writable=False, create=False):