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

Jim Fulton jim at zope.com
Wed Dec 21 19:49:48 CET 2005


Phillip J. Eby wrote:
> 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.

That's a fair point.  I suggest it is something to consider in a
later rev of the PEP, but I don't think it alone would justify
a later rev.

Jim

-- 
Jim Fulton           mailto:jim at zope.com       Python Powered!
CTO                  (540) 361-1714            http://www.python.org
Zope Corporation     http://www.zope.com       http://www.zope.org


More information about the Web-SIG mailing list