========= Changelog ========= 0.10 (unreleased) ----------------- * Fixed serious bug that caused Resource's request handlers to leak into other Resources. * Added default HEAD implementation (calls GET, discards content) with ability for Resource subclasses to specialise when necessary. * Fixed http.created signature. If there's a body there has to be a content type header too. [INCOMPATIBLE] * Extend the @resource.GET et al decorators so they can be used on functions (i.e. not methods) to benefit from request method checking and content negotiation checking. * Extend the @templating.page decorator to allow the decorated methods to return just the args (a dict) or a (headers, args) tuple. * Fix "method not allowed" response when the Resource has no handlers for the request's method. * Add support for resources that are WSGI applications. * Added unittest setup to paster template. * Start using WebTest in unittests for improved response validation and simpler testing. * Improvements to "python setup.py test". * Minor Python 2.4/2.6 compatability changes. 0.9 (2009-04-21) ---------------- * Allow a response to be returned during URL traversal, i.e. as the result of a @child-decorated method. * Replaced copy of mimeparse with an external dependency to the mimeparse package. * Fixed @child decorator to match static, unicode strings. * Add setup-app entry point for newly generated paster template projects. * Add test suite location to setup.py so "python setup.py test" just works. 0.8 (2009-03-02) ---------------- * Rewrote/refactored restish.templating to be more flexible, less weird ;-) and to make resources need no direct relation to an application's lib.templating module. WARNING: backwards incompatible change ... sorry. * Extract render_page, render_response and render_element from templating decorators allowing greater control over the response when the decorator's convenience gets in the way. * Performance improvments: restish's Request and Response objects now directly subclass webob's classes avoiding lots of getattr() calls; restish.app now uses the PATH_INFO from the WSGI environ instead of creating a number of URL instances to work out the same thing. * Added Request.application_path as a convenience for getting the path part of the application's root URL. * Added the ApplicationURLAccessor contrib util, an attempt to make it easy for an application to define and create its fixed/canonical URLs. * Added Tempita templating renderer "contrib" module. 0.7.2 (2009-02-17) ------------------ * Fix @child matching so it passes unquoted, decoded URL segments to the decorated method. 0.7.1 (2009-02-12) ------------------ * Fix to work with WebOb 0.9.6. 0.7 (2009-01-22) ---------------- * Python 2.4 compatability (thanks to Chuck Thier for the patch). * Fix templating.Renderer to call the intance's method rather a module-scope function. * Extend a renderer's signature to include the output encoding; only Renderer.page() sets the encoding by default. This change makes it easier to build a page form fragments without causing unicode decode errors. * Changed paster template to be explicit about path to public resources. (Makes it work correctly with Spawning.) * Use WebError for the paster template's error handing. It's prettier. 0.6 (2009-01-13) ---------------- * Changing the path (child, parent, sibling, etc) of a URL now removes the query string and fragment. * Add a set of server error response factories/exceptions to restish.http, similar to those that already existed for client errors. 0.5.2 (2009-01-08) ------------------ * setup.py now specifies zip_safe=False to make it work correctly with the "paster create" command. 0.5.1 (2009-01-06) ------------------ Cleaned up repo * Added files recommended by pypi including license 0.5 (2009-01-05) ---------------- NOTE: First External Release