9
* Added ``req.urlarg``, which represents positional arguments in
10
``environ['wsgiorg.routing_args']``.
12
* For Python 2.4, added attribute get/set proxies on exception objects
13
from, for example, ``webob.exc.HTTPNotFound().exception``, so that
14
they act more like normal response objects (despite not being
15
new-style classes or ``webob.Response`` objects). In Python 2.5 the
16
exceptions are ``webob.Response`` objects.
18
Backward Incompatible Changes
19
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21
* The ``Response`` constructor has changed: it is now ``Response([body],
22
[status], ...)`` (before it was ``Response([status], [body], ...)``).
23
Body may be str or unicode.
25
* The ``Response`` class defaults to ``text/html`` for the
26
Content-Type, and ``utf8`` for the charset (charset is only set on
27
``text/*`` and ``application/*+xml`` responses).
29
Bugfixes and Small Changes
30
~~~~~~~~~~~~~~~~~~~~~~~~~~
32
* Use ``BaseCookie`` instead of ``SimpleCookie`` for parsing cookies.
34
* Added ``resp.write(text)`` method, which is equivalent to
35
``resp.body += text`` or ``resp.unicode_body += text``, depending on
38
* The ``decode_param_names`` argument (used like
39
``Request(decode_param_names=True)``) was being ignored.
41
* Unicode decoding of file uploads and file upload filenames were
42
causing errors when decoding non-file-upload fields (both fixes from
48
* Added response methods ``resp.encode_content()`` and
49
``resp.decode_content()`` to gzip or ungzip content.
51
* ``Response(status=404)`` now works (before you would have to use
52
``status="404 Not Found"``).
54
* Bugfix (typo) with reusing POST body.
56
* Added ``226 IM Used`` response status.
58
* Backport of ``string.Template`` included for Python 2.3
64
* ``__setattr__`` would keep ``Request`` subclasses from having
65
properly settable environ proxies (like ``req.path_info``).
70
* ``request.POST`` was giving FieldStorage objects for *every*
71
attribute, not just file uploads. This is fixed now.
74
* Added request attributes ``req.server_name`` and ``req.server_port``
75
for the environ keys ``SERVER_NAME`` and ``SERVER_PORT``.
77
* Avoid exceptions in ``req.content_length``, even if
78
``environ['CONTENT_LENGTH']`` is somehow invalid.
83
* Python 2.3 compatibility: backport of ``reversed(seq)``
85
* Made separate ``.exception`` attribute on ``webob.exc`` objects,
86
since new-style classes can't be raised as exceptions.
88
* Deprecate ``req.postvars`` and ``req.queryvars``, instead using the
89
sole names ``req.GET`` and ``req.POST`` (also ``req.str_GET`` and
90
``req.str_POST``). The old names give a warning; will give an error
91
in next release, and be completely gone in the following release.
93
* ``req.user_agent`` is now just a simple string (parsing the
94
User-Agent header was just too volatile, and required too much
95
knowledge about current browsers). Similarly,
96
``req.referer_search_query()`` is gone.
98
* Added parameters ``version`` and ``comment`` to
99
``Response.set_cookie()``, per William Dode's suggestion.
101
* Was accidentally consuming file uploads, instead of putting the
102
``FieldStorage`` object directly in the parameters.
107
* Added ``res.set_cookie(..., httponly=True)`` to set the ``HttpOnly``
108
attribute on the cookie, which keeps Javascript from reading the
111
* Added some WebDAV-related responses to ``webob.exc``
113
* Set default ``Last-Modified`` when using ``response.cache_expire()``
114
(fixes issue with Opera)
116
* Generally fix ``.cache_control``
121
First release. Nothing is new, or everything is new, depending on how