WebOb 0.9.7 is out!

See the news here: http://pythonpaste.org/webob/news.html#id1

Thanks in particular to Sergey Schetinin for lots of fixes in this version.

What follows is from the news file:

* Moved repository from svn location to
  http://bitbucket.org/ianb/webob/

* Arguments to Accept.best_match must be specific types,
  not wildcards. The server should know a list of specic types it can
  offer and use ``best_match`` to select a specific one.

* With ``req.accept.best_match([types])`` prefer the first type in the
  list (previously it preferred later types).

* Also, make sure that if the user-agent accepts multiple types and
  there are multiple matches to the types that the application offers,
  ``req.accept.best_match([..])`` returns the most specific match.
  So if the server can satisfy either ``image/*`` or ``text/plain``
  types, the latter will be picked independent from the order the accepted
  or offered types are listed (given they have the same quality rating).

* Fix Range, Content-Range and AppIter support all of which were broken
  in many ways, incorrectly parsing ranges, reporting incorrect
  content-ranges, failing to generate the correct body to satisfy the range
  from ``app_iter`` etc.

* Fix assumption that presense of a ``seek`` method means that the stream
  is seekable.

* Add ``ubody`` alias for ``Response.unicode_body``

* Add Unicode versions of ``Request.script_name`` and ``path_info``:
  ``uscript_name`` and ``upath_info``.

* Split __init__.py into four modules: request, response, descriptors and
  datetime_utils.

* Fix ``Response.body`` access resetting Content-Length to zero
  for HEAD responses.

* Support passing Unicode bodies to :class:`WSGIHTTPException`
  constructors.

* Make ``bool(req.accept)`` return ``False`` for requests with missing
  Accept header.

* Add HTTP version to Request.__str__ output.

* Resolve deprecation warnings for parse_qsl on Python 2.6 and newer.

* Fix Response.md5_etag setting Content-MD5 in incorrect
  format.

* Add ``Request.authorization`` property for Authorization header.

* Make sure ETag value is always quoted (required by RFC)

* Moved most ``Request`` behavior into a new class named
  ``BaseRequest``.  The ``Request`` class is now a superclass for
  ``BaseRequest`` and a simple mixin which manages
  ``environ['webob.adhoc_attrs']`` when ``__setitem__``,
  ``__delitem__`` and ``__getitem__`` are called.  This allows
  framework developers who do not want the
  ``environ['webob.adhoc_attrs']`` mutation behavior from
  ``__setattr__``.  (chrism)

* Added response attribute ``response.content_disposition`` for its
  associated header.

* Changed how ``charset`` is determined on :class:`webob.Request`
  objects.  Now the ``charset`` parameter is read on the Content-Type
  header, if it is present.  Otherwise a ``default_charset`` parameter
  is read, or the ``charset`` argument to the Request constructor.
  This is more similar to how :class:`webob.Response` handles the
  charset.

* Made the case of the Content-Type header consistent (note: this
  might break some doctests).

* Make ``req.GET`` settable, such that ``req.environ['QUERY_STRING']``
  is updated.

* Fix problem with ``req.POST`` causing a re-parse of the body when
  you instantiate multiple ``Request`` objects over the same environ
  (e.g., when using middleware that looks at ``req.POST``).

* Recreate the request body properly when a ``POST`` includes file
  uploads.

* When ``req.POST`` is updated, the generated body will include the
  new values.

* Added a ``POST`` parameter to :meth:`webob.Request.blank`; when
  given this will create a request body for the POST parameters (list
  of two-tuples or dictionary-like object).  Note: this does not
  handle unicode or file uploads.

* Added method :meth:`webob.Response.merge_cookies`, which takes the
  ``Set-Cookie`` headers from a Response, and merges them with another
  response or WSGI application.  (This is useful for flash messages.)

* Fix a problem with creating exceptions like
  ``webob.exc.HTTPNotFound(body='<notfound/>',
  content_type='application/xml')`` (i.e., non-HTML exceptions).

* When a Location header is not absolute in a Response, it will be
  made absolute when the Response is called as a WSGI application.
  This makes the response less bound to a specific request.

* Added webob.dec, a decorator for making WSGI applications
  from functions with the signature ``resp = app(req)``.


-- 
Ian Bicking  |  http://blog.ianbicking.org  |
http://topplabs.org/civichacker

--

You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.


Reply via email to