[IPython-user] Sending input to IPython from a separate thread.
Anthony Roy
home@antroy.co...
Wed Sep 26 03:44:24 CDT 2007
Hi all,
I'm starting to write a Vim plugin for sending text for a buffer to
IPython for evaluation. The idea is to send the text via sockets to a
thread on a running instance of IPython which will then evaluate the text.
A simplified version of what I am trying to achieve follows:
import sys, threading
from IPython.Shell import *#IPShellEmbed
def get_shell_runner(shell):
def shell_runner():
shell(header='Vim Interactor')
print dir(shell)
return shell_runner
ipshell = IPShellEmbed()
t = threading.Thread(target=get_shell_runner(ipshell))
t.start()
ipshell.IP.runsource("2 * 3")
Now this falls over due to the history object (IP.input_hist) isn't
getting updated. So I'm fairly sure I'm using the wrong method to send
the text to the shell.
What I want to see on the screen is the following:
In [1]: 2 * 3
Out [1]: 6
What I'm actually getting (after hacking the Prompts module to suppress
the error...) is this:
Out[
1]: In [1]: 6
Any tips anyone?
Thanks,
--
Anthony.
e: home@antroy.co.uk
More information about the IPython-user
mailing list