~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to turbosimpletal/zptsupport.py

Merge in removing caches

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
"TurboGears support for Zope Page Templates"
2
2
 
3
3
import StringIO
 
4
import logging
4
5
import os
5
6
import pkg_resources
6
7
 
7
8
from simpletal import simpleTAL, simpleTALES
8
9
 
 
10
log = logging.getLogger("turbogears.zptsupport")
 
11
 
9
12
 
10
13
_zpt_cache = {}
11
14
def zpt(tfile):
32
35
        self.template.expandInline(context, s)
33
36
        return s.getvalue()
34
37
 
35
 
    def expand_(self, f, **info):
36
 
        context = simpleTALES.Context(allowPythonPath=1)
37
 
        for k, v in info.iteritems():
38
 
            context.addGlobal(k, v)
39
 
        self.template.expand(context, f, 'utf-8')
40
 
 
41
38
    @property
42
39
    def macros(self):
43
40
        return self.template.macros
67
64
            package, "%s.%s" % (basename, self.extension))
68
65
        return zpt(tfile)
69
66
 
 
67
    def render(self, info, format="html", fragment=False, template=None):
 
68
        """Renders data in the desired format.
 
69
 
 
70
        @param info: the data / context itself
 
71
        @type info: dict
 
72
        @para format: "html"
 
73
        @type format: "string"
 
74
        @para template: name of the template to use
 
75
        @type template: string
 
76
        """
 
77
        tinstance = self.load_template(template)
 
78
        log.debug("Applying template %s" % (tinstance.filename))
 
79
        data = dict()
 
80
        if self.get_extra_vars:
 
81
            data.update(self.get_extra_vars())
 
82
        data.update(info)
 
83
        return tinstance.expand(**data).encode('utf-8')