genshi.template.base
Basic templating functionality.
TemplateError
Base exception class for errors related to template processing.
TemplateSyntaxError
Exception raised when an expression in a template causes a Python syntax error, or the template is not well-formed.
BadDirectiveError
Exception raised when an unknown directive is encountered when parsing a template.
An unknown directive is any attribute using the namespace for directives, with a local name that doesn't match any registered directive.
TemplateRuntimeError
Exception raised when an the evaluation of a Python expression in a template causes an error.
Context
Container for template input data.
A context provides a stack of scopes (represented by dictionaries).
Template directives such as loops can push a new scope on the stack with data that should only be available inside the loop. When the loop terminates, that scope can get popped off the stack again.
>>> ctxt = Context(one='foo', other=1) >>> ctxt.get('one') 'foo' >>> ctxt.get('other') 1 >>> ctxt.push(dict(one='frost')) >>> ctxt.get('one') 'frost' >>> ctxt.get('other') 1 >>> ctxt.pop() {'one': 'frost'} >>> ctxt.get('one') 'foo'
get(self, key, default=None)
Get a variable's value, starting at the current scope and going upward.
param key: the name of the variable param default: the default value to return when the variable is not found keys(self)
Return the name of all variables in the context.
return: a list of variable names items(self)
Return a list of (name, value) tuples for all variables in the context.
return: a list of variables update(self, mapping)
Update the context from the mapping provided.
push(self, data)
Push a new scope on the stack.
param data: the data dictionary to push on the context stack. pop(self)
Pop the top-most scope from the stack.
copy(self)
Create a copy of this Context object.
DirectiveFactoryMeta
Meta class for directive factories.
DirectiveFactory
Base for classes that provide a set of template directives.
since: version 0.6 get_directive(self, name)
Return the directive class for the given name.
param name: the directive name as used in the template return: the directive class see: Directive get_directive_index(self, dir_cls)
Return a key for the given directive class that should be used to sort it among other directives on the same SUB event.
The default implementation simply returns the index of the directive in the directives list.
param dir_cls: the directive class return: the sort key
Template
Abstract template base class.
This class implements most of the template processing model, but does not specify the syntax of templates.
stream(self)
(Not documented)
generate(self, **args, *kwargs)
Apply the template to the given context data.
Any keyword arguments are made available to the template as context data.
Only one positional argument is accepted: if it is provided, it must be an instance of the Context class, and keyword arguments are ignored. This calling style is used for internal processing.
return: a markup event stream representing the result of applying the template to the context data.
See Genshi XML Template Language, Genshi Text Template Language, ApiDocs/0.6.x, Documentation