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

Jim Fulton jim at zope.com
Wed Dec 21 19:06:50 CET 2005


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?

> 
>> 2. If the file-like object passed has a close method, wouldn't
...

> If I understand your suggestion correctly, you're asking to change that 
> in a way that disallows early closing, and I don't think that should be 
> allowed. 

Ah! I see. Good point. OK, I withdraw my suggestion.

...

>> 3. The server should be allowed to use the file wrapper in a different
>>     thread than the one used to run the application. This should be 
>> noted.
>>     Applications should not return file-like objects that rely on running
>>     in the same thread.  This too should be noted.
> 
> 
> This seems reasonable to me.  For the actual use cases file_wrapper was 
> intended to support (sendfile() and the Java equivalent thereof) this 
> should be no problem at all.

Cool.

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