[Web-SIG] WSGI in standard library

Ian Bicking ianb at colorstudy.com
Fri Feb 17 03:02:59 CET 2006

Bill Janssen wrote:
>>   I think John Lee has done some work on this?  Beats me.  I've never 
>>felt any need for CSS parsing personally.
> If you are doing any work with the Web (spidering, for instance), and
> need to do rendering of the Web pages (say, for pop-out prism, or
> building an ebook from it), a CSS parser is pretty much necessary.  I
> tend to think that you really can't understand the Web
> programmatically without a CSS parser.
> An ECMAscript interpreter would be a big help, too.

Yes, but what is the advantage of having these in the standard library? 
  These seem fairly niche, in that not that many people actually do this 
kind of work; isn't it better to simply organize an effort among the 
interested parties?

That said, I think it would be perhaps an appropriate middleground for 
the standard library documentation to refer to specific projects.

>>- Asynchronous fetch
>>   Not sure how this would work.  What kind of async networking can we 
>>do in a cross-platform manner?
> I ran into this building the Plucker web spider.  You need to be able
> to issue requests for web pages (or other resources) and come back
> from time to time to see if they had loaded yet.  I think the addition
> of generators might be useful here.

Yes, but there's still the cross-platform asynchronous socket handling 
issues.  These seem to require fiddling and details that can't be 
responded to well in the standard library.  Or, at least, this has to be 
built on a lower-level network layer that (AFAIK) does not exist in the 
standard library.

>>- Connection caching
>>   Seems somewhat complex.  I'm not sure it is appropriate for the 
>>standard library.  Maybe httplib2 or another such project could take 
>>this on, but it doesn't seem like a standard library task.
> My philosophy of the standard library is that it should keep working
> when you lean on it, not break and force you to find something else
> when you lean on it.  Apparently (and oddly) that seems to be a
> somewhat unusual way of thinking about it.

The standard library only gets substantial updates every year or two, 
and there's no real user feedback process (except predictive in the case 
of a PEP, or by way of using an already mature library).

>>- Server-side SSL support
>>   What is the current state of this?  It's mostly there, isn't it?
> Not there at all, as far as I know.  The standard library only
> supports client-side SSL.

I suppose the problem is the certificate management, or something along 
those lines?  It's not that hard to do as it is, and I believe Clark has 
specifically mentioned what he would like so that HTTPS would be fairly 
easy to apply to any WSGI server (even if it may not be built in).

>>- A standard server framework on the order of Medusa
>>   Well, we have BaseHTTPServer, and now a WSGI based server.
> So, does either work as well as Medusa?  Surely BaseHTTPServer doesn't.

I dunno.  I'm more concerned that such a server have the same interface 
as a better server could have.  WSGI alone may be enough of a standard 
there.  BaseHTTPServer has been very successful at getting people doing 
things very quickly, in a way that is satisfying and motivating.  It did 
that without being a really robust web server.  I think it's okay that 
people have to move on to other software at a certain point, so long as 
it is not jarring, and the stdlib interface is not so hopelessly naive 
that any "real" alternative feels very different.  I don't think the 
real alternative(s) to BaseHTTPServer have to feel that different.

>>- Explicit cookie handling
>>   I guess I brought this one up?  I'm not sure what I mean ;)
> I had to do some client-side cookie handling lately...  There are some
> missing pieces, like cookie databases that automatically sync with the
> user's browser cookie repositories.

I think cookielib.CookieJar gives you your database, and reads browser 

> I don't believe there's any support for server-side cookie handling either.

On the server side the Cookie module is crude but workable.  If I was to 
make a request object with a .cookies attribute, it would use but not 
expose any part of that module, since the cookies the server recieves 
can be fully described by a dictionary (unlike the cookies that a server 

Ian Bicking  |  ianb at colorstudy.com  |  http://blog.ianbicking.org

More information about the Web-SIG mailing list