Webob

Latest version: v1.8.9

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

Scan your dependencies

Page 8 of 9

0.9.2

Not secure
-----

* Add more arguments to :meth:`Request.remove_conditional_headers`
for more fine-grained control: `remove_encoding`, `remove_range`,
`remove_match`, `remove_modified`. All of them are `True` by default.

* Add an `set_content_md5` argument to :meth:`Response.md5_etag`
that calculates and sets Content-MD5 reponse header from current
body.

* Change formatting of cookie expires, to use the more traditional
format ``Wed, 5-May-2001 15:34:10 GMT`` (dashes instead of spaces).
Browsers should deal with either format, but some other code expects
dashes.

* Added in ``sorted`` function for backward compatibility with Python
2.3.

* Allow keyword arguments to :class:`webob.Request`, which assign
attributes (possibly overwriting values in the environment).

* Added methods :meth:`webob.Request.make_body_seekable` and
:meth:`webob.Request.copy_body`, which make it easier to share a
request body among different consuming applications, doing something
like `req.make_body_seekable(); req.body_file.seek(0)`

0.9.1

Not secure
-----

* ``request.params.copy()`` now returns a writable MultiDict (before
it returned an unwritable object).

* There were several things broken with ``UnicodeMultiDict`` when
``decode_param_names`` is turned on (when the dictionary keys are
unicode).

* You can pass keyword arguments to ``Request.blank()`` that will be
used to construct ``Request`` (e.g., ``Request.blank('/',
decode_param_names=True)``).

* If you set headers like ``response.etag`` to a unicode value, they
will be encoded as ISO-8859-1 (however, they will remain encoded,
and ``response.etag`` will not be a unicode value).

* When parsing, interpret times with no timezone as UTC (previously
they would be interpreted as local time).

* Set the Expires property on cookies when using
``response.set_cookie()``. This is inherited from ``max_age``.

* Support Unicode cookie values

0.9

Not secure
---

* Added ``req.urlarg``, which represents positional arguments in
``environ['wsgiorg.routing_args']``.

* For Python 2.4, added attribute get/set proxies on exception objects
from, for example, ``webob.exc.HTTPNotFound().exception``, so that
they act more like normal response objects (despite not being
new-style classes or ``webob.Response`` objects). In Python 2.5 the
exceptions are ``webob.Response`` objects.

Backward Incompatible Changes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* The ``Response`` constructor has changed: it is now ``Response([body],
[status], ...)`` (before it was ``Response([status], [body], ...)``).
Body may be str or unicode.

* The ``Response`` class defaults to ``text/html`` for the
Content-Type, and ``utf8`` for the charset (charset is only set on
``text/*`` and ``application/*+xml`` responses).

Bugfixes and Small Changes
~~~~~~~~~~~~~~~~~~~~~~~~~~

* Use ``BaseCookie`` instead of ``SimpleCookie`` for parsing cookies.

* Added ``resp.write(text)`` method, which is equivalent to
``resp.body += text`` or ``resp.unicode_body += text``, depending on
the type of ``text``.

* The ``decode_param_names`` argument (used like
``Request(decode_param_names=True)``) was being ignored.

* Unicode decoding of file uploads and file upload filenames were
causing errors when decoding non-file-upload fields (both fixes from
Ryan Barrett).

0.8.5

Not secure
-----

* Added response methods ``resp.encode_content()`` and
``resp.decode_content()`` to gzip or ungzip content.

* ``Response(status=404)`` now works (before you would have to use
``status="404 Not Found"``).

* Bugfix (typo) with reusing POST body.

* Added ``226 IM Used`` response status.

* Backport of ``string.Template`` included for Python 2.3
compatibility.

0.8.4

Not secure
-----

* ``__setattr__`` would keep ``Request`` subclasses from having
properly settable environ proxies (like ``req.path_info``).

0.8.3

Not secure
-----

* ``request.POST`` was giving FieldStorage objects for *every*
attribute, not just file uploads. This is fixed now.


* Added request attributes ``req.server_name`` and ``req.server_port``
for the environ keys ``SERVER_NAME`` and ``SERVER_PORT``.

* Avoid exceptions in ``req.content_length``, even if
``environ['CONTENT_LENGTH']`` is somehow invalid.

Page 8 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.