human
I wrote the below code

    def lint_app(*args, **kw):
        assert (len(args) == 2), u'Two    arguments    required'
        assert (not kw), u'No    keyword    arguments    allowed'
        (environ, start_response) = args
        check_environ(environ)
        start_response_started = []
        def start_response_wrapper(*args, **kw):
            assert ((len(args) == 2) or (len(args) == 3)), (u'Invalid    number    of    arguments:    %s' % args)
            assert (not kw), u'No    keyword    arguments    allowed'
            status = args[0]
            headers = args[1]
            if (len(args) == 3):
                exc_info = args[2]
            else:
                exc_info = None
            check_status(status)
            check_headers(headers)
            check_content_type(status, headers)
            check_exc_info(exc_info)
            start_response_started.append(None)
            return WriteWrapper(start_response(*args))
        environ[u'wsgi.input'] = InputWrapper(environ[u'wsgi.input'])
        environ[u'wsgi.errors'] = ErrorWrapper(environ[u'wsgi.errors'])
        iterator = application(environ, start_response_wrapper)
        assert isinstance(iterator, collections.Iterable), u'The    application    must    return    an    iterator,    if    only    an    empty    list'
        check_iterator(iterator)
        return IteratorWrapper(iterator, start_response_started)
    return lint_app

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

def middleware(application, global_conf=None):