human
Complete this python program:
def capture_output(environ, start_response, application):
assistant
#Here is the Python program you requested.

    """Runs application with environ and start_response, and captures
    status, headers, and body.
    Sends status and header, but *not* body.  Returns (status,
    headers, body).  Typically this is used like:
    .. code-block:: python
    def dehtmlifying_middleware(application):
    def replacement_app(environ, start_response):
    status, headers, body = capture_output(
    environ, start_response, application)
    content_type = header_value(headers, \content-type\)
    if (not content_type
    or not content_type.startswith(\text/html\)):
    return [body]
    body = re.sub(r\<.*?>\, \\, body)
    return [body]
    return replacement_app
    """
    warnings.warn('wsgilib.capture_output    has    been    deprecated    in    favor    of    wsgilib.intercept_output', DeprecationWarning, 2)
    data = []
    output = StringIO()
    def replacement_start_response(status, headers, exc_info=None):
        if data:
            data[:] = []
        data.append(status)
        data.append(headers)
        start_response(status, headers, exc_info)
        return output.write
    app_iter = application(environ, replacement_start_response)
    try:
        for item in app_iter:
            output.write(item)
    finally:
        if hasattr(app_iter, 'close'):
            app_iter.close()
    if (not data):
        data.append(None)
    if (len(data) < 2):
        data.append(None)
    data.append(output.getvalue())
    return data