Version 13

  * Added HttpOnly option to cookies

  * Session middleware can now have the cookie path and domain overridden

Version 12

  * Added a path_info argument to request.make_uri

  * Improved support for dispatcher_app to dispatch to bound methods

  * Added many missing docstrings and other pylint/cheesecake suggested changes

  * Extended request.make_uri to take any query argument that wsgiutils.make_query will accept

  * make_query now supports taking a list of (name, value) tuples

Version 11

  * Removed dbm and rdbms session managers, these were untested, undocumented and were not recommended for use.

  * Added fix for parse_querystring when qs is empty

  * Fixed error on non-UTF8 encoded request body

  * Added X-Pesto-Exception header to help debugging of webapps

  * Improved dispatch debug logging

  * Fixed issue when using dispatcher predicates and caching

  * Reversed dispatcher function matching precedence: the first matching function wins

  * Remove pesto.wsgiutils.MockWSGI and replace with classes in a new pesto.testing module

  * Added a decorators argument to dispatcher_app.match, allowing handler functions to have decorators which are only applied in the context of web requests

  * Request.cookies is now a MultiDict object with the same API as Request.form, Request.files and Request.query

  * Renamed urldispatcher to dispatcher_app to clarify intent of this class.

  * Made response.Response normalize header case and sort headers on ingress, fixing a few consistency issues.

  * Adjusted response header handling to be standards compliant on 304 responses and ETag headers

  * Use wsgiref.validator in MockWSGI

  * Refactored some parts of request.py and wsgiutils.py into new httputils.py and
    utils.py modules.

  * Removed dependency on stdlib cgi.py (see http://mail.python.org/pipermail/web-sig/2009-May/003822.html for reasons).

  * Changed variables named 'encoding' to 'charset' to make the naming more consistent with HTTP.

  * Removed support for Python 2.3. From now on pesto is actively tested on 2.5 and 2.6, and I will try to support 2.4 if bugs are reported.


Version 10

  * Fixes in documentation and packaging, but no changes to functionality


Version 9

  * Added a predicate argument to dispatcher.match, allowing for extra arbitrary checks before routing a URL.

  * Add basic ETag support

  * Removed http exceptions

  * Added support for wsigorg.routing_args

  * WSGI apps created with pesto now have execution deferred until the first
    iteration. Therefore the iterator's .close method can be used to reliably
    release resources etc.

  * Fix for Response objects not catching close methods on upstream content iterators

  * Added onclose kwarg for Response object. Any functions in onclose will be called on the wsgi close event.

  * Added request.files object to complement request.form and request.query

  * Added MultiDict object to replace FieldStorageWrapper

  * Renamed register_pattern to register_converter for consistency

  * Allowed multiple close functions to be passed to ClosingIterator

  * request.make_uri now uri quotes paths

  * Rewrote urldispatcher to use a much more flexible URL matching syntax

  * Refactored Request initialisation to ensure that multiple calls don't
    attempt to reinitialize request parameters

  * added Response.getheaders, Response.getheader and Response.from_wsgi

  * add an ExtensiblePattern to dispatcher and enable it by default

  * Changed dispatcher to be a WSGI callable

  * Added wsgiutils.ClosingIterator and wsgiutils.overlay

  * Pesto response objects are now valid WSGI apps

  * Ensure the same Request instance is returned when called multiple times on the same environ object

  * Added a function for mapping request form parameters to function arguments

  * Updated documentation: now requires sphinx for building docs

  * Renamed WSGIRequest to Request for consistency with Response

  * Changed 'despatcher' to 'dispatcher' throughout, after it was pointed out that no one spells it this way any more


Version 8

  * Merged pesto.utils with pesto.wsgiutils

  * Refactored builtin static server to allow it to be used to serve ad-hoc single files

  * Added a make_query utility function to wsgiutils

  * Fixed request.make_uri when presented with a relative URI. expanded the docstring and tests.

  * Static server fixes for windows environments


Version 7

  * Reimplemented session saving machinery using the WSGI standard close() mechanism.

  * Request.FieldStorageWrapper now raises a KeyError on non-existant item access


Version 6

  * Added uri_join and fixed request.make_uri path concatenation logic

  * Moved debug param out of despatch class and into despatcher_app, where it can be applied across all despatchers in operation

  * Removed duplicate default charset/encoding setting

  * Added Response.bad_request() classmethod

  * Added Response.buffered method

  * Added Response.add_cookie


Version 5

  * Changed wsgiutils.make_absolute_url to bring into line with PEP 333 and improve handling of relative URIs

  * Added Response.redirect, Response.not_found etc classmethods, replacing previous freestanding functions

  * make_query now allows a separator character to be specified

  * pesto.currentrequest() returns None when no request available

  * Add WSGIRequest.query to model querystring data. Both WSGIRequest.form and .query are now properties and lazily instantiated.


Version 4

  * First publicly released version! 

