/usr/lib/python2.7/dist-packages/pyramid/chameleon_text.py is in python-pyramid 1.4.5+dfsg-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | from zope.interface import implementer
from chameleon.zpt.template import PageTextTemplateFile
from pyramid.interfaces import ITemplateRenderer
from pyramid.decorator import reify
from pyramid import renderers
def renderer_factory(info):
return renderers.template_renderer_factory(info, TextTemplateRenderer)
@implementer(ITemplateRenderer)
class TextTemplateRenderer(object):
def __init__(self, path, lookup, macro=None):
self.path = path
self.lookup = lookup
# text template renderers have no macros, so we ignore the
# macro arg
@reify # avoid looking up reload_templates before manager pushed
def template(self):
return PageTextTemplateFile(self.path,
auto_reload=self.lookup.auto_reload,
debug=self.lookup.debug,
translate=self.lookup.translate)
def implementation(self):
return self.template
def __call__(self, value, system):
try:
system.update(value)
except (TypeError, ValueError):
raise ValueError('renderer was passed non-dictionary as value')
result = self.template(**system)
return result
|