~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to turbosimpletal/zptsupport.py

tidy up turbosimpletal a bit, add recompilation templates that have changed on
disk.

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
5
6
import pkg_resources
6
7
 
7
 
#from zope.pagetemplate.pagetemplatefile import PageTemplateFile
8
8
from simpletal import simpleTAL, simpleTALES
9
9
 
10
10
log = logging.getLogger("turbogears.zptsupport")
11
11
 
 
12
 
12
13
_zpt_cache = {}
13
 
 
14
14
def zpt(tfile):
15
15
    tinstance = _zpt_cache.get(tfile)
16
 
    if tinstance is None:
 
16
    stat = os.stat(tfile)
 
17
    if tinstance is None or tinstance.stat != stat:
17
18
        tinstance = _zpt_cache[tfile] = TemplateWrapper(
18
 
            simpleTAL.compileXMLTemplate(open(tfile)), tfile)
 
19
            simpleTAL.compileXMLTemplate(open(tfile)), tfile, stat)
19
20
    return tinstance
20
21
 
 
22
 
21
23
class TemplateWrapper(object):
22
24
 
23
 
    def __init__(self, template, filename):
 
25
    def __init__(self, template, filename, stat):
24
26
        self.template = template
25
27
        self.filename = filename
 
28
        self.stat = stat
26
29
 
27
30
    def expand(self, **info):
28
31
        context = simpleTALES.Context(allowPythonPath=1)
36
39
    def macros(self):
37
40
        return self.template.macros
38
41
 
39
 
## class TGPageTemplateFile(PageTemplateFile):
40
 
 
41
 
##     def pt_getContext(self, args=(), options={}, **ignored):
42
 
##         namespace = super(TGPageTemplateFile, self).pt_getContext(
43
 
##             args, options, **ignored)
44
 
##         namespace.update(options)
45
 
##         return namespace
46
42
 
47
43
class TurboZpt(object):
48
44
    extension = "pt"