ficapy
10/8/2013 - 10:19 AM

Python script opening interactive console with current interpreter state. Thanks to readline/rlcompleter, you may use up/down arrows (histor

Python script opening interactive console with current interpreter state. Thanks to readline/rlcompleter, you may use up/down arrows (history browse) or left/right arrows (line edition), see http://stackoverflow.com/questions/19754458/python-open-interactive-console-from-script)

import console

example_list = [1, 2, 3]
example_tuple = ('abc', 'def')
console.copen(globals(), locals())
print 'this will be continued'
"""
Console module provide `copen` method for opening interactive python shell in
the runtime.
"""

import code
import readline
import rlcompleter

def copen(_globals, _locals):
    """
    Opens interactive console with current execution state.
    Call it with: `console.open(globals(), locals())`
    """
    context = _globals.copy()
    context.update(_locals)
    readline.set_completer(rlcompleter.Completer(context).complete)
    readline.parse_and_bind("tab: complete")
    shell = code.InteractiveConsole(context)
    shell.interact()