Would it be possible to write a twisted-powered application that opens an interactive shell, e.g. to tweak the business objects served via the twisted protocol layer?
My current problem is that the reactor.run()
blocks the application, and the IPython.embed()
is only run after the reactor has finished.
Unless you specifically need extras that are only in ipython, you really should check out manhole (twistedmatrix example code)
It lets you access a python interactive shell that is natively running in the twisted reactor. Normally the shell is accessed via telnet or ssh, but if you wanted to be creative you could wire it up any way you want.
... Meanwhile I found an answer to my question: http://twistedmatrix.com/documents/current/core/howto/threading.html
def interact():
import IPython
IPython.embed()
reactor.callInThread(interact)
reactor.run()