Project description

WebOb provides objects for HTTP requests and responses. Specifically
it does this by wrapping the WSGI request
environment and response status/headers/app_iter(body).

The request and response objects provide many conveniences for parsing
HTTP request and forming HTTP responses. Both objects are read/write:
as a result, WebOb is also a nice way to create HTTP requests and
parse HTTP responses.

Support and Documentation

License

Authors

WebOb was authored by Ian Bicking and is currently maintained by the Pylons
Project and a team of contributors.

1.8.1 (2018-04-10)

Bugfix

acceptparse.MIMEAccept which is deprecated in WebOb 1.8.0 made a backwards
incompatible change that led to it raising on an invalid Accept header. This
behaviour has now been reversed, as well as some other fixes to allow
MIMEAccept to behave more like the old version. See
https://github.com/Pylons/webob/pull/356

1.8.0 (2018-04-04)

Feature

request.POST now supports any requests with the appropriate
Content-Type. Allowing any HTTP method to access form encoded content,
including DELETE, PUT, and others. See
https://github.com/Pylons/webob/pull/352

Compatibility

WebOb is no longer officially supported on Python 3.3 which was EOL’ed on
2017-09-29.

When setting app_iter on a Response object the content_md5 header
is no longer cleared. This behaviour is odd and disallows setting the
content_md5 and then returning an iterator for chunked content encoded
responses. See https://github.com/Pylons/webob/issues/86

Experimental Features

These features are experimental and may change at any point in the future.

Bugfix

Exceptions now use string.Template.safe_substitute rather than
string.Template.substitute. The latter would raise for missing mappings, the
former will simply not substitute the missing variable. This is safer in case
the WSGI environ does not contain the keys necessary for the body template.
See https://github.com/Pylons/webob/issues/345.

Response.__init__ would discard app_iter when a Response had no
body, this would cause issues when app_iter was an object that was tied
to the life-cycle of a web application and had to be properly closed.
app_iter is more advanced API for Response and thus even if it
contains a body and is thus against the HTTP RFC’s, we should let the users
shoot themselves by returning a body. See
https://github.com/Pylons/webob/issues/305