Class NewTextTemplate
           object --+        
                    |        
base.DirectiveFactory --+    
                        |    
            base.Template --+
                            |
                           NewTextTemplate
Implementation of a simple text-based template engine. This class will
replace OldTextTemplate in a future release.
It uses a more explicit delimiting style for directives: instead of the old
style which required putting directives on separate lines that were prefixed
with a # sign, directives and commenbtsr are enclosed in delimiter pairs
(by default {% ... %} and {# ... #}, respectively).
Variable substitution uses the same interpolation syntax as for markup
languages: simple references are prefixed with a dollar sign, more complex
expression enclosed in curly braces.
>>> tmpl = NewTextTemplate('''Dear $name,
...
... {# This is a comment #}
... We have the following items for you:
... {% for item in items %}
...  * ${'Item %d' % item}
... {% end %}
... ''')
>>> print(tmpl.generate(name='Joe', items=[1, 2, 3]).render(encoding=None))
Dear Joe,
<BLANKLINE>
<BLANKLINE>
We have the following items for you:
<BLANKLINE>
 * Item 1
<BLANKLINE>
 * Item 2
<BLANKLINE>
 * Item 3
<BLANKLINE>
<BLANKLINE>
By default, no spaces or line breaks are removed. If a line break should
not be included in the output, prefix it with a backslash:
>>> tmpl = NewTextTemplate('''Dear $name,
...
... {# This is a comment #}\
... We have the following items for you:
... {% for item in items %}\
...  * $item
... {% end %}\
... ''')
>>> print(tmpl.generate(name='Joe', items=[1, 2, 3]).render(encoding=None))
Dear Joe,
<BLANKLINE>
We have the following items for you:
 * 1
 * 2
 * 3
<BLANKLINE>
Backslashes are also used to escape the start delimiter of directives and
comments:
>>> tmpl = NewTextTemplate('''Dear $name,
...
... \{# This is a comment #}
... We have the following items for you:
... {% for item in items %}\
...  * $item
... {% end %}\
... ''')
>>> print(tmpl.generate(name='Joe', items=[1, 2, 3]).render(encoding=None))
Dear Joe,
<BLANKLINE>
{# This is a comment #}
We have the following items for you:
 * 1
 * 2
 * 3
<BLANKLINE>
    |  | 
        
          | __init__(self,
        source,
        filepath=None,
        filename=None,
        loader=None,
        encoding=None,
        lookup= 'strict',
        allow_exec=False,
        delims=('{%', '%}', '{#', '#}'))Initialize a template from either a string, a file-like object, or
an already parsed markup stream.
 |  |  | 
  
    | Inherited from base.Template:__getstate__,__repr__,__setstate__,generate Inherited from base.DirectiveFactory:get_directive,get_directive_index Inherited from object:__delattr__,__format__,__getattribute__,__hash__,__new__,__reduce__,__reduce_ex__,__setattr__,__sizeof__,__str__,__subclasshook__ | 
    |  | directives = [('def', <class 'genshi.template.directives.DefDi...A list of (name, cls) tuples that define the set of directives
provided by this factory.
 | 
    |  | serializer = 'text'hash(x)
 | 
  
    | Inherited from base.Template:EXEC,EXPR,INCLUDE,SUB | 
| 
  Initialize a template from either a string, a file-like object, or
an already parsed markup stream.| __init__(self,
        source,
        filepath=None,
        filename=None,
        loader=None,
        encoding=None,
        lookup='strict',
        allow_exec=False,
        delims=('{%', '%}', '{#', '#}'))(Constructor)
 |  |  
    Parameters:
        source- a string, file-like object, or markup stream to read the
template fromfilepath- the absolute path to the template filefilename- the path to the template file relative to the search
pathloader- the TemplateLoader to use for loading included
templatesencoding- the encoding of thesourcelookup- the variable lookup mechanism; either "strict" (the
default), "lenient", or a custom lookup classallow_exec- whether Python code blocks in templates should be
allowedOverrides:
        object.__init__
        (inherited documentation) | 
 
| directivesA list of (name, cls) tuples that define the set of directives
provided by this factory.
   
    Value:| 
[('def', <class 'genshi.template.directives.DefDirective'>),('when', <class 'genshi.template.directives.WhenDirective'>),('otherwise',<class 'genshi.template.directives.OtherwiseDirective'>),('for', <class 'genshi.template.directives.ForDirective'>),('if', <class 'genshi.template.directives.IfDirective'>),('choose', <class 'genshi.template.directives.ChooseDirective'>),('with', <class 'genshi.template.directives.WithDirective'>)] | 
 | 
 
| delimiters
    Get Method:_get_delims(self)
    Set Method:_set_delims(self,
        delims)
    Delete Method:| 
'''    The delimiters for directives and comments. This should be a fo  ur item tuple    of the form ``(directive_start, directive_end, comment_start,    comment_end)``, where each item is a string.    ''' | 
 |