2009/11/25 Henry Precheur <he...@precheur.org>: > Please replace '...' with actual code or at least some description of > what it's doing. Lots of people have been trying to define a nice > interface for these objects for YEARS. People who know a great deal > about HTTP, and Python. And yet there's not a single implementation > that's widely accepted as the "best of breed".
class Request(object): def __init__(self, stream): self.environ = read_headers_until_crlf(stream) self.stream = stream These headers are then "general-header", "request-header", "entity-header". The stream is what remains. Ian argues that the stream is part of the environment since ``CONTENT_LENGTH`` is there. However, it is not always there. It is to be understood as a hint. Why is this a good separation? For two reasons: 1) Everybody else does it; 2) This stream should be handled carefully throughout the WSGI pipeline. Keeping it as a separate property helps to make this point clear. As an alternative to a trivial request class, I propose: (environ, stream, [start_response]) (It seems ``start_response`` might go out altogether in a revised specification in favor of returning a response tuple over an app iterable). \malthe _______________________________________________ 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