Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fix regression in embed() from pull-request #2096.

With certain sets of arguments `compile_flags` might be left as `None`. This
caused IPython to internally raise a TypeError when it tried to do a
bitwise or between `shell.compile.flags` and `PyCF_ONLY_AST` in
`CachingCompiler.ast_parse`.

The regression was introduced in:
  b70ac12 embed(): Default to the future compile flags of the calling frame.
  • Loading branch information...
commit 89b4dd764e34fab9fadfba2f624ca9bd29dab03f 1 parent dfcd243
@bfroehle authored
Showing with 4 additions and 2 deletions.
  1. +4 −2 IPython/frontend/terminal/embed.py
View
6 IPython/frontend/terminal/embed.py
@@ -200,7 +200,8 @@ class DummyMod(object):
module.__dict__ = global_ns
# Get locals and globals from caller
- if (local_ns is None or module is None) and self.default_user_namespaces:
+ if ((local_ns is None or module is None or compile_flags is None)
+ and self.default_user_namespaces):
call_frame = sys._getframe(stack_depth).f_back
if local_ns is None:
@@ -233,7 +234,8 @@ class DummyMod(object):
self.init_user_ns()
# Compiler flags
- self.compile.flags = compile_flags
+ if compile_flags is not None:
+ self.compile.flags = compile_flags
# Patch for global embedding to make sure that things don't overwrite
# user globals accidentally. Thanks to Richard <rxe@renre-europe.com>
Please sign in to comment.
Something went wrong with that request. Please try again.