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