[Web-SIG] Backup plan: WSGI 1 Addenda and wsgiref update for Py3
ianb at colorstudy.com
Tue Sep 21 18:57:44 CEST 2010
On Tue, Sep 21, 2010 at 12:09 PM, P.J. Eby <pje at 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
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Web-SIG