>>> import albatross
>>> class Ctx(albatross.SimpleContext):
...     def input_add(self, *args):
...         print args
... 
>>> ctx = Ctx('.')
>>> ctx.locals.zero = 0
>>> ctx.locals.zerostr = '0'
>>> ctx.locals.width = 5
>>> ctx.locals.height = 7
>>> ctx.locals.secret = 42
>>> ctx.locals.other_secret = '<"&'
>>> albatross.Template(ctx, '<magic>', '''
... <al-input name="zero" whitespace>
... <al-input name="zerostr" whitespace>
... <al-input name="width" whitespace>
... <al-input name="area" expr="width * height" whitespace>
... <al-input type="password" name="passwd" whitespace>
... <al-input type="submit" name="login" value="Login" whitespace>
... <al-input type="hidden" name="secret" whitespace>
... <al-input type="hidden" name="other_secret" whitespace>
... ''').to_html(ctx)
('text', 'zero', 0, 0)
('text', 'zerostr', '0', 0)
('text', 'width', 5, 0)
('text', 'area', 35, 0)
('password', 'passwd', None, 0)
('submit', 'login', 'Login', 0)
('hidden', 'secret', 42, 0)
('hidden', 'other_secret', '<"&', 0)
>>> ctx.flush_content()
<input name="zero" value="0" />
<input name="zerostr" value="0" />
<input name="width" value="5" />
<input name="area" value="35" />
<input type="password" name="passwd" />
<input type="submit" name="login" value="Login" />
<input type="hidden" name="secret" value="42" />
<input type="hidden" name="other_secret" value="&lt;&quot;&amp;" />
