Albatross 1.20 released

Andrew McNamara andrewm at object-craft.com.au
Tue Oct 19 15:51:42 CEST 2004


OVERVIEW

Albatross is a small toolkit for developing highly stateful web
applications.

The toolkit has been designed to take a lot of the pain out of
constructing intranet applications although you can also use Albatross
for deploying publicly accessed web applications.

In slightly more than 3000 lines of Python (according to pycount) you
get the following:

  * An extensible HTML templating system similar to DTML including tags for:
    - Conditional processing.
    - Macro definition and expansion.
    - Sequence iteration and pagination.
    - Tree browsing.
    - Lookup tables to translate Python values to arbitrary template
      text.

  * Application classes which offer the following features:
    - Optional server side or browser side sessions.
    - The ability to place Python code for each page in a dynamically
      loaded module, or to place all page processing code in a single
      mainline.

  * The ability to deploy applications as CGI, FastCGI, mod_python or
    a pure python HTTP server by changing less than 10 lines of code.

The toolkit application functionality is defined by a collection of
fine grained mixin classes.  Nine different application types and six
different execution contexts are prepackaged, you are able to define
your own drop in replacements for any of the mixins to alter any
aspect of the toolkit semantics.

Application deployment is controlled by your choice of either cgi,
FastCGI, mod_python, or BaseHTTPServer Request class.  It should be
possible to develop a Request class for Medusa or Twisted to allow
applications to be deployed on those platforms with minimal changes.

Albatross comes with over 160 pages of documentation.  HTML, PDF and
PostScript formatted documentation is available from the toolkit
homepage.

The toolkit homepage:

        http://www.object-craft.com.au/projects/albatross/

The Albatross mailing list subscription and archives:

	http://object-craft.com.au/cgi-bin/mailman/listinfo/albatross-users


CHANGES SINCE 1.1

There have been many improvements and bug fixes since release 1.1.
The following page describes the changes in detail.

    http://www.object-craft.com.au/projects/albatross/albatross/rel-1.20.html

Highlights include:

  * A new BranchingSessionContext application context class, that provides
    better syncronisation between browser state and application state
    when the application state is stored server-side.

  * Improved adapters for the different deployment modes (CGI, FastCGI,
    mod_python, standalone, etc). Application status codes (such as
    HTTP_INTERNAL_SERVER_ERROR) are now returned to the browser.

  * The page module loader in PageModuleMixin has been reimplemented so
    that it does not pollute sys.modules. Page modules are now loaded
    into a synthetic module's namespace, rather than the global module
    namespace. This will break code that defined classes in page modules
    and placed instances of those classes into the session.

  * Multi-instance response headers are now supported (so, for example,
    more than one Cookie can be set. The ResponseMixin.get_header() method
    now returns a list rather than a single string.  ctx.req_equals(name)
    now checks for name.x if name is not found. This makes using image
    maps as buttons easier.

  * Under some circumstances, redirect_url() would redirect to incorrect
    or invalid URLs (for example, an https app would redirect to http)
    - the URI parsing has been refactored, and this bug has been
    fixed. Tests were also added for the refactored URI parsing.

  * Several cookie handling bugs were fixed.

-- 
Andrew McNamara, Senior Developer, Object Craft
http://www.object-craft.com.au/


More information about the Python-announce-list mailing list