'Activate the interactive interpreter.
__call__(self,header=\'\',local_ns=None,module=None,dummy=None) -> Start
the interpreter shell with the given local and global namespaces, and
optionally print a header string at startup.
The shell can be globally activated/deactivated using the
dummy_mode attribute. This allows you to turn off a shell used
for debugging globally.
However, *each* time you call the shell you can override the current
state of dummy_mode with the optional keyword parameter \'dummy\'. For
example, if you set dummy mode on with IPShell.dummy_mode = True, you
can still have a specific call work by making it as IPShell(dummy=False).'

def __call__(self, header='', local_ns=None, module=None, dummy=None, stack_depth=1, global_ns=None, compile_flags=None, **kw):

    self.keep_running = True
    clid = kw.pop('_call_location_id', None)
    if (not clid):
        frame = sys._getframe(1)
        clid = ('%s:%s' % (frame.f_code.co_filename, frame.f_lineno))
    self._call_location_id = clid
    if (not self.embedded_active):
        return
    self.exit_now = False
    if (dummy or ((dummy != 0) and self.dummy_mode)):
        return
    if header:
        self.old_banner2 = self.banner2
        self.banner2 = (((self.banner2 + '\n') + header) + '\n')
    else:
        self.old_banner2 = ''
    if self.display_banner:
        self.show_banner()
    self.mainloop(local_ns, module, stack_depth=stack_depth, global_ns=global_ns, compile_flags=compile_flags)
    self.banner2 = self.old_banner2
    if (self.exit_msg is not None):
        print self.exit_msg
    if self.should_raise:
        raise KillEmbeded('Embedded    IPython    raising    error,    as    user    requested.')
