Ben Golding
2010-03-25 04:33:50 UTC
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 5300 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 180 pages of documentation. HTML and PDF
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.36:
==================-
Major Changes
-------------
* Conversion of documentation to reStructuredText
With the Python documentation moving from LaTeX markup to
reStructuredText and the Sphinx documentation generator, we could
no longer rely on the documentation utilities released with Python.
The Albatross documentation has been converted to ReST, and uses
Sphinx to render this to HTML and PDF formats.
* Albatross Forms
A simple HTML form generation and validation framework has been
added to Albatross (as an optional extension under the module
name albatross.ext.form).
Bug Fixes
---------
* Redirects were not calling req.return_code() - for FastCGI
deployment, this meant the request would hang [11164].
* The python built-in __import__() gained extra arguments with
python 2.6 - the decode session import hook has been changed to
pass all arguments (positional and keyword) [14823].
* When rendering tags to HTML, the handling of the noescape attribute
was not consistently honoured. Attribute rendering has been moved
to the common Tag base class as the write_attrib() method [15398].
* Relaxed tag recognition regular expressions, so that malformed
tag attributes with no value, such as <al-inputname= />, are still
recognised as valid Albatross tags, albeit with a null name
attribute (which subsequently generates an error) [15398].
Miscellaneous Changes
---------------------
* Miscellaneous changes to RedHat, Ubuntu, Solaris and OS X packaging
rules.
* Reorganised the unit tests to eliminate the use of explicitly
assembled test suites, relying instead on the unittestmodule to
collect methods of TestCase subclasses. The documentation example
tests were also reimplemented as TestCase subclasses, allowing
them to be run via common test driver.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2235 bytes
Desc: not available
URL: <http://www.object-craft.com.au/pipermail/albatross-users/attachments/20100325/987e7954/attachment.bin>
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 5300 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 180 pages of documentation. HTML and PDF
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.36:
==================-
Major Changes
-------------
* Conversion of documentation to reStructuredText
With the Python documentation moving from LaTeX markup to
reStructuredText and the Sphinx documentation generator, we could
no longer rely on the documentation utilities released with Python.
The Albatross documentation has been converted to ReST, and uses
Sphinx to render this to HTML and PDF formats.
* Albatross Forms
A simple HTML form generation and validation framework has been
added to Albatross (as an optional extension under the module
name albatross.ext.form).
Bug Fixes
---------
* Redirects were not calling req.return_code() - for FastCGI
deployment, this meant the request would hang [11164].
* The python built-in __import__() gained extra arguments with
python 2.6 - the decode session import hook has been changed to
pass all arguments (positional and keyword) [14823].
* When rendering tags to HTML, the handling of the noescape attribute
was not consistently honoured. Attribute rendering has been moved
to the common Tag base class as the write_attrib() method [15398].
* Relaxed tag recognition regular expressions, so that malformed
tag attributes with no value, such as <al-inputname= />, are still
recognised as valid Albatross tags, albeit with a null name
attribute (which subsequently generates an error) [15398].
Miscellaneous Changes
---------------------
* Miscellaneous changes to RedHat, Ubuntu, Solaris and OS X packaging
rules.
* Reorganised the unit tests to eliminate the use of explicitly
assembled test suites, relying instead on the unittestmodule to
collect methods of TestCase subclasses. The documentation example
tests were also reimplemented as TestCase subclasses, allowing
them to be run via common test driver.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2235 bytes
Desc: not available
URL: <http://www.object-craft.com.au/pipermail/albatross-users/attachments/20100325/987e7954/attachment.bin>