diff --git a/src/zope/app/wsgi/configure.zcml b/src/zope/app/wsgi/configure.zcml index 72d9a03..98b5d7a 100644 --- a/src/zope/app/wsgi/configure.zcml +++ b/src/zope/app/wsgi/configure.zcml @@ -1,5 +1,8 @@ + + + diff --git a/src/zope/app/wsgi/fileresult.py b/src/zope/app/wsgi/fileresult.py index 97d11dd..e7c14ab 100644 --- a/src/zope/app/wsgi/fileresult.py +++ b/src/zope/app/wsgi/fileresult.py @@ -15,7 +15,7 @@ $Id$ """ - +import io import tempfile from zope import component, interface import zope.publisher.interfaces.http @@ -77,3 +77,18 @@ class _tfile: @interface.implementer(zope.publisher.http.IResult) def TemporaryFileResult(f, request): return FileResult(f, request) + +@component.adapter(io.BufferedReader, zope.publisher.interfaces.http.IHTTPRequest) +@interface.implementer(zope.publisher.http.IResult) +def BufferedReaderFileResult(f, request): + return FileResult(f, request) + +@component.adapter(io.TextIOWrapper, zope.publisher.interfaces.http.IHTTPRequest) +@interface.implementer(zope.publisher.http.IResult) +def TextIOWrapperFileResult(f, request): + return FileResult(f, request) + +@component.adapter(io.BufferedRandom, zope.publisher.interfaces.http.IHTTPRequest) +@interface.implementer(zope.publisher.http.IResult) +def BufferedRandomFileResult(f, request): + return FileResult(f, request)