~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to turbosimpletal/zptsupport.py

quiet simpletal's logging, unicode fixes

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 
3
3
import StringIO
4
4
import logging
5
 
import os
6
5
import pkg_resources
7
6
 
8
7
#from zope.pagetemplate.pagetemplatefile import PageTemplateFile
15
14
def zpt(tfile):
16
15
    tinstance = _zpt_cache.get(tfile)
17
16
    if tinstance is None:
18
 
        tinstance = _zpt_cache[tfile] = TemplateWrapper(simpleTAL.compileXMLTemplate(open(tfile)))
 
17
        tinstance = _zpt_cache[tfile] = TemplateWrapper(
 
18
            simpleTAL.compileXMLTemplate(open(tfile)), tfile)
19
19
    return tinstance
20
20
 
21
21
class TemplateWrapper(object):
22
22
 
23
 
    def __init__(self, template):
 
23
    def __init__(self, template, filename):
24
24
        self.template = template
 
25
        self.filename = filename
25
26
 
26
27
    def __call__(self, **kw):
27
28
        context = simpleTALES.Context(allowPythonPath=1)
28
29
        for k, v in kw.iteritems():
29
30
            context.addGlobal(k, v)
30
31
        s = StringIO.StringIO()
31
 
        self.template.expand(context, s)
 
32
        self.template.expand(context, s, 'utf-8')
32
33
        return s.getvalue()
33
34
 
34
35
    @property
78
79
        @type template: string
79
80
        """
80
81
        tinstance = self.load_template(template)
81
 
        #log.debug("Applying template %s" % (tinstance.filename))
 
82
        log.debug("Applying template %s" % (tinstance.filename))
82
83
        data = dict()
83
84
        if self.get_extra_vars:
84
85
            data.update(self.get_extra_vars())