On Nov 29, 2009, at 12:40 AM, James Y Knight wrote:
> The next step here is clearly for someone to redraft the changes as a diff 
> against PEP 333. If you do not have any interest in being that person, please 
> make that clear, so someone else can step up to do so.

Okay, not sensing any other volunteers here...I guess it's all me.

The intention of this spec update is to be compatible with existing 
middleware/applications when running on Python 2.X. Apps/middleware running on 
python 3.X require changes in any case, and this specification will tell them 
exactly what to expect. That Python 3.X middleware and WSGI adapters will have 
to deal with both bytestrings and unicode strings in many parts of the API 
(output status code, output headers, output response iterable/write callback) 
will add some complexity, but that's life.

Any WSGI implementations on Python 3.X claiming compliance to WSGI 1.0 are most 
likely broken, and its behavior cannot be relied upon. Too bad about wsgiref.

As self-appointed author, I am going to take a stand and say that both the 
python3-related string-type specifications, and the additional requirements 
except #3 (read() with no-args) and #4 (file_wrapper looking at 
Content-Length), will be included.

And it will be called WSGI 1.1.

Back to the list of "extra requirements":

#1: (readline with an arg) must be included, despite the potential for 
breakage. That ship has already sailed, the breakage has already occurred, it's 
already required. Disagreement here really is of no consequence.

#2: (wsgi.input() must return EOF at EOF): I do not believe will break any 
middleware. It will require some changes in some WSGI adapter implementations, 
but that's acceptable. If you have a real-life example of middleware that would 
break here, show it. So this will be included.

#3 is not actually required for anything; at best it's an extra convenience; 
repeatedly reading until EOF will work just as well. Furthermore, the API 
change has the potential to break some middleware in Python 2.X, so I'll take 
the safe road and not make the change.

The purpose behind #4 is essentially included in #6, and so is not needed as a 
separate requirement.

#5 and #6 are uncontroversial and of no impact to an already-correct 
implementation. They will be included.

I'll send a diff of the actual wording changes once I've written it.

James
_______________________________________________
Web-SIG mailing list
Web-SIG@python.org
Web SIG: http://www.python.org/sigs/web-sig
Unsubscribe: 
http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com

Reply via email to