Hi all -- before Neil checks in his big scary backwards-incompatible "markup string" patch, I want to get the current stable code out the door as Quixote 0.5.1. It's almost ready; just a few i's to dot and t's to cross. If you would like to give the almost-releasable code a spin, you can get it via CVS: cvs -d :pserver:anon@cvs.mems-exchange.org:/home/cvs co quixote Or see http://www.mems-exchange.org/software/quixote/cvs.html Here's the provisional changelog for this release: 0.5.1 (xx Oct 2002): * (incompatible change for anyone doing HTTP upload with Quixote) Improved support for HTTP upload requests: any HTTP request with a Content-Type of "multipart/form-data" -- which is generally only used for uploads -- is now represented by HTTPUploadRequest, a subclass of HTTPRequest, and the uploaded files themselves are represented by Upload objects. See doc/upload.txt for details. * (possible incompatible changes for anyone subclassing Publisher) Various rearrangements and refactoring in the Publisher class. Added create_request() method, which takes responsibility for creating the HTTPRequest (or HTTPUploadRequest) object away from parse_request(). As a consequence, the signature of parse_request() has changed. Added process_request() method. Changed publish() so it catches exceptions coming from either parse_request() or process_request(). Consult the source code (publish.py) for details. * A new subpackage, quixote.server, is intended for code that publishes a Quixote application through HTTP, making it possible to run Quixote applications without having to configure Apache or some other full-blown Web server. Right now there's only an implementation on top of Medusa; contributions of support for Python's BaseHTTPServer, Twisted, or other frameworks would be welcome. * Modified SessionManager.maintain_session() so it explicitly removes a session if that session used to have useful info (ie. exists in the session manager), but no longer does (patch by Jon Corbet). * Make the PTL compiler a bit smarter about recognizing "template" lines; PTL code should now be able to use 'template' as an identifier, which is handy when converting existing Python code to PTL. * Replaced HTTPRequest.redirect() with a cleaner, more general version supplied by Andreas Kostyrka. Redirects to fully relative URLs (no leading slash) now work. * Added support for putting bits of JavaScript into HTML form documents: added HTTPResponse.add_javascript() to collect snippts of JavaScript code, and Form._render_javascript() to emit them as part of the HTML document. * Added global convenience functions get_path() and redirect(). * Change Publisher so it never modifies SCRIPT_NAME or PATH_INFO. * Fixed bug in quixote.sendmail._add_recip_headers(): it crashed if passed an empty list. -- Greg Ward - software developer gward@mems-exchange.org MEMS Exchange http://www.mems-exchange.org