On Tue, Sep 21, 2010 at 12:09 PM, P.J. Eby <p...@telecommunity.com> wrote:
> The Python 3 specific changes are to use: > > * ``bytes`` for I/O streams in both directions > * ``str`` for environ keys and values > * ``bytes`` for arguments to start_response() and write() > This is the only thing that seems odd to me -- it seems like the response should be symmetric with the request, and the request in this case uses str for headers (status being header-like), and bytes for the body. Otherwise this seems good to me, the only other major errata I can think of are all listed in the links you included. * text stream for wsgi.errors > > In other words, "strings in, bytes out" for headers, bytes for bodies. > > In general, only changes that don't break Python 2 WSGI implementations are > allowed. The changes should also not break mod_wsgi on Python 3, but may > make some Python 3 wsgi applications non-compliant, despite continuing to > function on mod_wsgi. > > This is because mod_wsgi allows applications to output string headers and > bodies, but I am ruling that option out because it forces every piece of > middleware to have to be tested with arbitrary combinations of strings and > bytes in order to test compliance. If you want your application to output > strings rather than bytes, you can always use a decorator to do that. (And > a sample one could be provided in wsgiref.) > I agree allowing both is not ideal. -- Ian Bicking | http://blog.ianbicking.org
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com