Webob

Latest version: v1.8.9

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 9

1.1b1

Not secure
---------

* We have acquired the webob.org domain, docs are now hosted at `https://docs.pylonsproject.org/projects/webob/en/stable/
<https://docs.pylonsproject.org/projects/webob/en/stable/>`_

* Make ``accept.quality(..)`` return best match quality, not first match quality.

* Fix ``Range.satisfiable(..)`` edge cases.

* Make sure ``WSGIHTTPException`` instances return the same headers for ``HEAD``
and ``GET`` requests.

* Drop Python 2.4 support

* Deprecate ``HTTPException.exception`` (warning on use).

* Deprecate ``accept.first_match(..)`` (warning on use).
Use ``.best_match(..)`` instead.

* Complete deprecation of ``req.[str_]{post|query}vars`` properties
(exception on use).

* Remove ``FakeCGIBody.seek`` hack (no longer necessary).

1.0.8

Not secure
------

* Escape commas in cookie values (see also:
`stdlib Cookie bug <https://bugs.python.org/issue9824>`_)

* Change cookie serialization to more closely match how cookies usually
are serialized (unquoted expires, semicolon separators even between morsels)

* Fix some rare cases in cookie parsing

* Enhance the req.is_body_readable to always guess GET, HEAD, DELETE and TRACE
as unreadable and PUT and POST as readable
(`issue 12 <https://bitbucket.org/ianb/webob/issues/12>`_)

* Deny setting req.body or req.body_file to non-empty values for GET, HEAD and
other bodiless requests

* Fix running nosetests with arguments on UNIX systems
(`issue 11 <https://bitbucket.org/ianb/webob/issues/11>`_)

1.0.7

Not secure
------

* Fix ``Accept`` header matching for items with zero-quality
(`issue 10 <https://bitbucket.org/ianb/webob/issues/10>`_)

* Hide password values in ``MultiDict.__repr__``

1.0.6

Not secure
------

* Use ``environ['wsgi.input'].read()`` instead of ``.read(-1)`` because the former
is explicitly mentioned in PEP-3333 and CherryPy server does not support the latter.

* Add new ``environ['webob.is_body_readable']`` flag which specifies if the
input stream is readable even if the ``CONTENT_LENGTH`` is not set.
WebOb now only ever reads the input stream if the content-length is known
or this flag is set.

* The two changes above fix a hangup with CherryPy and wsgiref servers
(`issue 6 <https://bitbucket.org/ianb/webob/issues/6>`_)

* ``req.body_file`` is now safer to read directly. For ``GET`` and other similar requests
it returns an empty ``StringIO`` or ``BytesIO`` object even if the server passed in
something else.

* Setting ``req.body_file`` to a string now produces a PendingDeprecationWarning.
It will produce DeprecationWarning in 1.1 and raise an error in 1.2. Either
set ``req.body_file`` to a file-like object or set ``req.body`` to a string value.

* Fix ``.pop()`` and ``.setdefault(..)`` methods of ``req/resp.cache_control``

* Thanks to the participants of `Pyramid sprint at the PyCon US 2011
<https://bitbucket.org/ianb/webob/commits/7b7dc3ec6159>`_ WebOb now has
100% test coverage.

1.0.5

Not secure
------
* Restore Python 2.4 compatibility.

1.0.4

Not secure
------

* The field names escaping bug semi-fixed in 1.0.3 and originally blamed on cgi module
was in fact a ``webob.request._encode_multipart`` bug (also in Google Chrome) and was
lurking in webob code for quite some time -- 1.0.2 just made it trigger more often.
Now it is fixed properly.

* Make sure that req.url and related properties do not unnecessarily escape some chars
(``:&+$``) in the URI path (`issue 5 <https://bitbucket.org/ianb/webob/issues/5>`_)

* Revert some changes from 1.0.3 that have broken backwards compatibility for some apps.
Getting ``req.body_file`` does not make input stream seekable, but there's a new property
``req.body_file_seekable`` that does.

* ``Request.get_response`` and ``Request.call_application`` seek the input body to start
before calling the app (if possible).

* Accessing ``req.body`` 'rewinds' the input stream back to pos 0 as well.

* When accessing ``req.POST`` we now avoid making the body seekable as the input stream data
are preserved in ``FakeCGIBody`` anyway.

* Add new method ``Request.from_string``.

* Make sure ``Request.as_string()`` uses CRLF to separate headers.

* Improve parity between ``Request.as_string()`` and ``.from_file``/``.from_string``
methods, so that the latter can parse output of the former and create a similar
request object which wasn't always the case previously.

Page 5 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.