[Web-SIG] Questions/suggestions on 'wsgi.file_wrapper'

Phillip J. Eby pje at telecommunity.com
Wed Dec 21 19:31:05 CET 2005


At 01:06 PM 12/21/2005 -0500, Jim Fulton wrote:
>Phillip J. Eby wrote:
>>At 11:25 AM 12/21/2005 -0500, Jim Fulton wrote:
>>
>>>Here are some questions and sugesstions on the 'wsgi.file_wrapper'
>>>part of the WSGI API:
>>>
>>>1. Does this need to be optional?  It seems that it would be
>>>     easy for any server to provide this, it would be nice for
>>>     applications to be able to rely in it.
>>
>>It's intentionally optional because its presence signifies that the 
>>server can do things *better* than the application, if and only if the 
>>object is a "real" operating system file or other "special" object.  The 
>>only reason the spec requires only a "file-like" object rather than an 
>>object with a valid "fileno()" method, is because somebody wanted to 
>>support Jython objects wrapping Java sio(?) objects, for a Java 
>>equivalent of sendfile().
>
>I guess I'm puzzled how the server can fail to do at least as well
>as the application.  Can you think of a case where an application wants to
>output a file and can do better than a simple fallback iterator provided
>by the server?

Again, file_wrapper was created as an optional hack to allow sendfile() and 
java.nio.FileChannel to work.  It's a little late to go back and make it 
required unless we want to start trying to make a WSGI 1.1 spec.

At this point, it's optional because it was optional and everybody's gone 
and implemented servers that either do or don't comply with the existing 
spec.  We're not really in a position to change the spec without a new 
spec.  About a year ago the SIG consensus was basically, "it's done; 
anything from here on out has to be either a clarification of something 
already decided, or addition of new optional features (like an async API)".

Once that was done, people have been making implementations left and right, 
so it's not fair to go back and make them retroactively noncompliant for 
not implementing an explicitly optional feature.



More information about the Web-SIG mailing list