comparison genshi/template/markup.py @ 647:5af131b37ab4 experimental-sandboxed

restricted is the new secure
author aronacher
date Wed, 26 Sep 2007 17:56:41 +0000
parents 1cf5fdfe7214
children 11b2fc530c94
comparison
equal deleted inserted replaced
646:b6cdfcb37496 647:5af131b37ab4
60 serializer = 'xml' 60 serializer = 'xml'
61 _number_conv = Markup 61 _number_conv = Markup
62 62
63 def __init__(self, source, basedir=None, filename=None, loader=None, 63 def __init__(self, source, basedir=None, filename=None, loader=None,
64 encoding=None, lookup='strict', allow_exec=True, 64 encoding=None, lookup='strict', allow_exec=True,
65 secure=False): 65 restricted=False):
66 Template.__init__(self, source, basedir=basedir, filename=filename, 66 Template.__init__(self, source, basedir=basedir, filename=filename,
67 loader=loader, encoding=encoding, lookup=lookup, 67 loader=loader, encoding=encoding, lookup=lookup,
68 allow_exec=allow_exec, secure=secure) 68 allow_exec=allow_exec, restricted=restricted)
69 # Make sure the include filter comes after the match filter 69 # Make sure the include filter comes after the match filter
70 if loader: 70 if loader:
71 self.filters.remove(self._include) 71 self.filters.remove(self._include)
72 self.filters += [self._match] 72 self.filters += [self._match]
73 if loader: 73 if loader:
128 directives.append((cls, value, ns_prefix.copy(), pos)) 128 directives.append((cls, value, ns_prefix.copy(), pos))
129 else: 129 else:
130 if value: 130 if value:
131 value = list(interpolate(value, self.basedir, 131 value = list(interpolate(value, self.basedir,
132 pos[0], pos[1], pos[2], 132 pos[0], pos[1], pos[2],
133 lookup=self.lookup)) 133 lookup=self.lookup,
134 restricted=self.restricted))
134 if len(value) == 1 and value[0][0] is TEXT: 135 if len(value) == 1 and value[0][0] is TEXT:
135 value = value[0][1] 136 value = value[0][1]
136 else: 137 else:
137 value = [(TEXT, u'', pos)] 138 value = [(TEXT, u'', pos)]
138 new_attrs.append((name, value)) 139 new_attrs.append((name, value))
211 stream.append((EXEC, suite, pos)) 212 stream.append((EXEC, suite, pos))
212 213
213 elif kind is TEXT: 214 elif kind is TEXT:
214 for kind, data, pos in interpolate(data, self.basedir, pos[0], 215 for kind, data, pos in interpolate(data, self.basedir, pos[0],
215 pos[1], pos[2], 216 pos[1], pos[2],
216 lookup=self.lookup): 217 lookup=self.lookup,
218 restricted=self.restricted):
217 stream.append((kind, data, pos)) 219 stream.append((kind, data, pos))
218 220
219 elif kind is COMMENT: 221 elif kind is COMMENT:
220 if not data.lstrip().startswith('!'): 222 if not data.lstrip().startswith('!'):
221 stream.append((kind, data, pos)) 223 stream.append((kind, data, pos))
Copyright (C) 2012-2017 Edgewall Software