##// END OF EJS Templates
Add global_ns argument to embedding, for backwards compatibility.
Thomas Kluyver -
Show More
@@ -30,6 +30,7 b' try:'
30 30 from contextlib import nested
31 31 except:
32 32 from IPython.utils.nested_context import nested
33 import warnings
33 34
34 35 from IPython.core import ultratb
35 36 from IPython.frontend.terminal.interactiveshell import TerminalInteractiveShell
@@ -96,7 +97,7 b' class InteractiveShellEmbed(TerminalInteractiveShell):'
96 97 pass
97 98
98 99 def __call__(self, header='', local_ns=None, module=None, dummy=None,
99 stack_depth=1):
100 stack_depth=1, global_ns=None):
100 101 """Activate the interactive interpreter.
101 102
102 103 __call__(self,header='',local_ns=None,global_ns,dummy=None) -> Start
@@ -140,7 +141,7 b' class InteractiveShellEmbed(TerminalInteractiveShell):'
140 141
141 142 # Call the embedding code with a stack depth of 1 so it can skip over
142 143 # our call and get the original caller's namespaces.
143 self.mainloop(local_ns, module, stack_depth=stack_depth)
144 self.mainloop(local_ns, module, stack_depth=stack_depth, global_ns=global_ns)
144 145
145 146 self.banner2 = self.old_banner2
146 147
@@ -148,7 +149,7 b' class InteractiveShellEmbed(TerminalInteractiveShell):'
148 149 print self.exit_msg
149 150
150 151 def mainloop(self, local_ns=None, module=None, stack_depth=0,
151 display_banner=None):
152 display_banner=None, global_ns=None):
152 153 """Embeds IPython into a running python program.
153 154
154 155 Input:
@@ -170,6 +171,14 b' class InteractiveShellEmbed(TerminalInteractiveShell):'
170 171 IPython itself (via %run), but some funny things will happen (a few
171 172 globals get overwritten). In the future this will be cleaned up, as
172 173 there is no fundamental reason why it can't work perfectly."""
174
175 if (global_ns is not None) and (module is None):
176 class DummyMod(object):
177 """A dummy module object for embedded IPython."""
178 pass
179 warnings.warn("global_ns is deprecated, use module instead.", DeprecationWarning)
180 module = DummyMod()
181 module.__dict__ = global_ns
173 182
174 183 # Get locals and globals from caller
175 184 if (local_ns is None or module is None) and self.default_user_namespaces:
General Comments 0
You need to be logged in to leave comments. Login now