cache (and compile) parse_template in run_view_in, fix #1474
This commit is contained in:
+2
-6
@@ -202,7 +202,7 @@ def compile2(code, layer):
|
||||
return compile(code, layer, 'exec')
|
||||
|
||||
|
||||
def restricted(code, environment=None, layer='Unknown'):
|
||||
def restricted(ccode, environment=None, layer='Unknown'):
|
||||
"""
|
||||
Runs code in environment and returns the output. If an exception occurs
|
||||
in code it raises a RestrictedError containing the traceback. Layer is
|
||||
@@ -213,10 +213,6 @@ def restricted(code, environment=None, layer='Unknown'):
|
||||
environment['__file__'] = layer
|
||||
environment['__name__'] = '__restricted__'
|
||||
try:
|
||||
if isinstance(code, types.CodeType):
|
||||
ccode = code
|
||||
else:
|
||||
ccode = compile2(code, layer)
|
||||
exec(ccode, environment)
|
||||
except HTTP:
|
||||
raise
|
||||
@@ -231,7 +227,7 @@ def restricted(code, environment=None, layer='Unknown'):
|
||||
sys.excepthook(etype, evalue, tb)
|
||||
del tb
|
||||
output = "%s %s" % (etype, evalue)
|
||||
raise RestrictedError(layer, code, output, environment)
|
||||
raise RestrictedError(layer, ccode, output, environment)
|
||||
|
||||
|
||||
def snapshot(info=None, context=5, code=None, environment=None):
|
||||
|
||||
Reference in New Issue
Block a user