Albatross 1.35 released

Andrew McNamara andrewm at
Tue Jun 20 12:55:33 CEST 2006


Albatross is a small toolkit for developing highly stateful web

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 4500 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

  * 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

  * 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 180 pages of documentation.  HTML and PDF
formatted documentation is available from the toolkit homepage.

The toolkit homepage:

The Albatross mailing list subscription and archives:


Note that release 1.34 was an internal release.

New Features

* A drop-in replacement for the fcgiapp module, called fcgiappnew has
  been added. This version implements the FastCGI protocol itself, rather
  than relying on an external module to implement the protocol. This
  new module addresses several minor problems with, and should
  be faster, although it should not be used in critical applications
  until it has received wider testing.

Functional Changes

* When extension tags (alx-*) are registered, their name is now checked
  against the template parsing regexp to ensure they can subsequently
  be matched.

Bug Fixes

* The AnyTag functionality was given knowledge of HTML tags for which
  the close tag is forbidden, so it can avoid generating XHTML empty tag
  (which could cause the page to fail HTML validation).

* When the disabledbool attribute was used on input tags, the disabled
  state was not being passed through to the input registry within the

* If a client closed it's connection to the session server while the
  server had data pending for the client, a subsequent del_write_file
  would generate an exception, killing the session server.

Andrew McNamara, Senior Developer, Object Craft

More information about the Python-announce-list mailing list