473,396 Members | 1,834 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Albatross 1.30 released


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 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
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 170 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/m...lbatross-users

CHANGES SINCE 1.20

* Any HTML tag can now be prefixed with "al-" allowing any attribute to be
the result of python evaluation. For example:

<al-td colspanexpr="i.span()"> could produce <td colspan="3">

and:

<al-input name="abc.value" disabledbool="abc.isdisabled()">
could produce <input name="abc.value" disabled>

* Since macros and lookups are an application global resource, they can
only be defined once per application, however this was not previously
checked. Redefinition of macros or lookups will now result in an
ApplicationError exception.

* an in-line version of the <al-lookup> tag has been introduced, which is
expanded in place if the tag has an expr= attribute.

* a new <al-require> tag has been added to allow templates to assert that
specific Albatross features are available, or templating scheme version
number is high enough.

* "Cache-Control: no-cache" is now set in addition to "Pragma: no-cache"
- the former is defined for HTTP/1.1, the later for HTTP/1.0.

* Simplified session cookie handling.

BUGFIXES SINCE 1.20:

* FastCGI apps were not being explicitly finalised, relying
instead on their object destructor, with the result that writing
application output (or errors) would be indefinitely deferred if
object cycles existed. We now call "fcgi.Finish()" from the fcgiapp
Request.return_code() method.

* When handling exceptions, the traceback is now explicitly deleted
from the local namespace to prevent cycles (otherwise the garbage
collection of other objects in the local namespace will be delayed).

* Two fixes to the <al-select> tag: the albatross-specific "list"
attribute was leaking into resulting markup, and the use of the "expr"
attribute would result in invalid markup being emitted.

* Thanks to Robert Fendt for picking this up: the Albatross-generated
hidden field input element must not appear naked inside a form
element for strict HTML conformance. The solution is to wrap the
input elements in div.

* BranchingSession sessions could not be "deleted" - the solution is
to add a dummy "session" shared by all branches, which is deleted
when one branch "logs out".

--
Andrew McNamara, Senior Developer, Object Craft
http://www.object-craft.com.au/
Jul 19 '05 #1
0 1007

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Dave Cole | last post by:
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...
0
by: Andrew McNamara | last post by:
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...
0
by: Andrew McNamara | last post by:
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...
0
by: Andrew McNamara | last post by:
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...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.