At 01:09 PM 4/1/2009 -0700, Guido van Rossum wrote:
Well you could make the bytes versions available under different keys.
I think you do something a bit similar this in webob, e.g. req.params
vs. req.str_params. (Perhaps you could have QUERY_STRING and
QUERY_BYTES.) The decode() call used to create the text strings could
use 'replace' as the error handler and the app could check for the
presence of the replacement character ('\ufffd') in the string to see
if there was a problem; or it could just work with the string
containing that character and report the user some kind of 40x or 50x
error. Frameworks (like webob) would of course do the right thing and
look for QUERY_BYTES before QUERY_STRING. QUERY_BYTES should probably
be optional.

The big problem I see with this approach is that any middleware that operates on these environment keys would have to be changed.

I think perhaps the problem here is the assumption that the environ dictionary has to be a straight-up copy of os.environ, when it can be whatever we want it to be. If wsgiref or other CGI->WSGI gateways have to change to get the environ set up correctly, this is less of a problem than forcing everybody to rewrite their middleware and apps.

_______________________________________________
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