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

The regression was introduced in:
  b70ac12 embed(): Default to the future compile flags of the calling frame.
  • Loading branch information...
1 parent dfcd243 commit 89b4dd764e34fab9fadfba2f624ca9bd29dab03f @bfroehle committed Aug 3, 2012
Showing with 4 additions and 2 deletions.
  1. +4 −2 IPython/frontend/terminal/
@@ -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):
# 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 <>

0 comments on commit 89b4dd7

Please sign in to comment.