Package genshi :: Package template :: Module directives :: Class AttrsDirective

Class AttrsDirective

object --+    
         |    
 Directive --+
             |
            AttrsDirective

Implementation of the py:attrs template directive.

The value of the py:attrs attribute should be a dictionary or a sequence of (name, value) tuples. The items in that dictionary or sequence are added as attributes to the element:

>>> from genshi.template import MarkupTemplate
>>> tmpl = MarkupTemplate('''<ul xmlns:py="http://genshi.edgewall.org/">
...   <li py:attrs="foo">Bar</li>
... </ul>''')
>>> print(tmpl.generate(foo={'class': 'collapse'}))
<ul>
  <li class="collapse">Bar</li>
</ul>
>>> print(tmpl.generate(foo=[('class', 'collapse')]))
<ul>
  <li class="collapse">Bar</li>
</ul>

If the value evaluates to None (or any other non-truth value), no attributes are added:

>>> print(tmpl.generate(foo=None))
<ul>
  <li>Bar</li>
</ul>
Nested Classes

Inherited from Directive: __metaclass__

Instance Methods
 
__call__(self, stream, directives, ctxt, **vars)
Apply the directive to the given stream.

Inherited from Directive: __init__, __repr__

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Methods

Inherited from Directive: attach

Class Variables
  tagname = 'attrs'
Properties

Inherited from Directive: expr

Inherited from object: __class__

Method Details

__call__(self, stream, directives, ctxt, **vars)
(Call operator)

 
Apply the directive to the given stream.
Parameters:
  • stream - the event stream
  • directives - a list of the remaining directives that should process the stream
  • ctxt - the context data
  • vars - additional variables that should be made available when Python code is executed
Overrides: Directive.__call__
(inherited documentation)