Skip to main content
https://travis-ci.org/Pylons/webob.png?branch=master Documentation Status

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

See the WebOb Documentation website to view documentation, report bugs, and obtain support.

License

WebOb is offered under the MIT-license.

Authors

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

1.8.7 (2021-02-17)

Bugfix

  • Decoding deflate-encoded responses now supports data which is packed in a zlib container as it is supposed to be. The old, non-standard behaviour is still supported.

    See https://github.com/Pylons/webob/pull/426

1.8.6 (2020-01-21)

Experimental Features

1.8.5 (2019-01-03)

Warnings

  • Fixed one last remaining invalid escape sequence in a docstring.

1.8.4 (2018-11-11)

Bugfix

Warnings

  • Some backslashes introduced with the new accept handling code were causing DeprecationWarnings upon compiling the source to pyc files, all of the backslashes have been reigned in as appropriate, and users should no longer see DeprecationWarnings for invalid escape sequence. See https://github.com/Pylons/webob/issues/384

1.8.3 (2018-10-14)

Bugfix

  • acceptparse.AcceptValidHeader, acceptparse.AcceptInvalidHeader, and acceptparse.AcceptNoHeader will now always ignore offers that do not match the required media type grammar when calling .acceptable_offers(). Previous versions raised a ValueError for invalid offers in AcceptValidHeader and returned them as acceptable in the others. See https://github.com/Pylons/webob/pull/372

Feature

  • Add Request.remote_host, exposing REMOTE_HOST environment variable.

  • Added acceptparse.Accept.parse_offer to codify what types of offers are compatible with acceptparse.AcceptValidHeader.acceptable_offers, acceptparse.AcceptMissingHeader.acceptable_offers, and acceptparse.AcceptInvalidHeader.acceptable_offers. This API also normalizes the offer with lowercased type/subtype and parameter names. See https://github.com/Pylons/webob/pull/376 and https://github.com/Pylons/webob/pull/379

1.8.2 (2018-06-05)

Bugfix

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.

Backwards Incompatibilities

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.

  • Request.host_url, Request.host_port, Request.domain correctly parse IPv6 Host headers as provided by a browser. See https://github.com/Pylons/webob/pull/332

  • Request.authorization would raise ValueError for unusual or malformed header values. See https://github.com/Pylons/webob/issues/231

  • Allow unnamed fields in form data to be properly transcoded when calling request.decode with an alternate encoding. See https://github.com/Pylons/webob/pull/309

  • 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

Release files for WebOb 1.8.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for WebOb 1.8.7
File Size Uploaded
WebOb-1.8.7.tar.gz 278.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for WebOb 1.8.7
File Interpreter ABI Platform
WebOb-1.8.7-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 393.5 kB

Release files / WebOb-1.8.7.tar.gz

Download URL WebOb-1.8.7.tar.gz
Size 278.5 kB
Tags Source
SHA-256 checksum
How to use checksums
b64ef5141be559cfade448f044fa45c2260351edcb6a8ef6b7e00c7dcef0c323
BLAKE2b-256 checksum
How to use checksums
c745ee5f034fb4ebe3236fa49e5a4fcbc54444dd22ecf33079cf56f9606d479d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.6

Release files / WebOb-1.8.7-py2.py3-none-any.whl

Download URL WebOb-1.8.7-py2.py3-none-any.whl
Size 115.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
73aae30359291c14fa3b956f8b5ca31960e420c28c1bec002547fb04928cf89b
BLAKE2b-256 checksum
How to use checksums
629ce94a9982e9f31fc35cf46cdc543a6c2c26cb7174635b5fd25b0bbc6a7bc0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.6

Release history Release notifications | RSS feed

1.8.9

2 release files

1.8.8

2 release files

This release

1.8.7 This release

2 release files

1.8.6

2 release files

1.8.5

2 release files

1.8.4

2 release files

1.8.3

2 release files

1.8.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.4

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.4

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.2

2 release files

1.4.1

1 release file

1.4

1 release file

1.3.1

1 release file

1.3

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2

1 release file

1.1.1

1 release file

1.1

1 release file

1.0.8

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

2 release files

1.0.2

1 release file

1.0.1

1 release file

1.0

1 release file

0.9.8

1 release file

0.9.7.1

1 release file

0.9.7

1 release file

0.9.6.1

1 release file

0.9.6

1 release file

0.9.5

1 release file

0.9.4

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

3 release files

0.9

3 release files

0.8.5

3 release files

0.8.4

3 release files

0.8.3

3 release files

0.8.2

3 release files

0.8.1

2 release files

0.8

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page