ANNOUNCE: Quixote 0.5.1 released

Greg Ward gward@mems-exchange.org
Tue, 8 Oct 2002 16:24:59 -0400


Quixote 0.5.1 is now available for download from:
  http://www.mems-exchange.org/software/quixote/

Quixote is yet another framework for developing Web applications in
Python.  The design goals were:

  1) To allow easy development of Web applications where the
     accent is more on complicated programming logic than
     complicated templating.

  2) To make the templating language as similar to Python as possible,
     in both syntax and semantics.  The aim is to make as many of the
     skills and structural techniques used in writing regular Python
     code applicable to Web applications built using Quixote.

  3) No magic.  When it's not obvious what to do in
     a certain case, Quixote refuses to guess.

If you view a web site as a program, and web pages as subroutines,
Quixote just might be the tool for you.  If you view a web site as a
graphic design showcase, and each web page as an individual work of art,
Quixote is probably not what you're looking for.

Quixote was primarily written by Andrew Kuchling, Neil Schemenauer, and
Greg Ward: {amk,nas,gward}@mems-exchange.org.

The Quixote documentation is available online:
  http://www.mems-exchange.org/software/quixote/doc/

Support for Quixote is available on the quixote-users@mems-exchange.org
mailing list:
  http://mail.mems-exchange.org/mailman/listinfo/quixote-users


CHANGES in Quixote 0.5.1
------------------------

  * (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,
    or using it for custom purposes)
    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 <andreas@kostyrka.priv.at>.
    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.

  * Factor out get_action_url() method in Form class.

  * Add the HTML version of the documentation to the source release.

-- 
Greg Ward - software developer                gward@mems-exchange.org
MEMS Exchange                            http://www.mems-exchange.org