##// END OF EJS Templates
Only split ast if last item is expression.
Matthias Bussonnier -
Show More
@@ -1281,13 +1281,11 b' python-profiler package from non-free.""")'
1281 1281 mode = 'exec'
1282 1282 source = '<timed exec>'
1283 1283 # multi-line %%time case
1284 if len(expr_ast.body) > 1 :
1285 expr_val=expr_ast.body[-1]
1286 code_val = self.shell.compile(ast.Expression(expr_val.value)
1287 , '<timed eval>'
1288 , 'eval')
1289 expr_ast=expr_ast.body[:-1]
1284 if len(expr_ast.body) > 1 and isinstance(expr_ast.body[-1], ast.Expr):
1285 expr_val= expr_ast.body[-1]
1286 expr_ast = expr_ast.body[:-1]
1290 1287 expr_ast = Module(expr_ast, [])
1288 expr_val = ast.Expression(expr_val.value)
1291 1289
1292 1290 t0 = clock()
1293 1291 code = self.shell.compile(expr_ast, source, mode)
@@ -1312,8 +1310,9 b' python-profiler package from non-free.""")'
1312 1310 exec(code, glob, local_ns)
1313 1311 out=None
1314 1312 # multi-line %%time case
1315 if expr_val and isinstance(expr_val, ast.Expr):
1316 out = eval(code_val, glob, local_ns)
1313 if expr_val is not None:
1314 code_2 = self.shell.compile(expr_val, source, 'eval')
1315 out = eval(code_2, glob, local_ns)
1317 1316 except:
1318 1317 self.shell.showtraceback()
1319 1318 return
General Comments 0
You need to be logged in to leave comments. Login now