<div class="gmail_quote">On 3 November 2011 13:51, Emmanuel Bacry <span dir="ltr">&lt;<a href="mailto:emmanuel.bacry@polytechnique.fr">emmanuel.bacry@polytechnique.fr</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div id=":12b">You mean use it directly within a wx main loop right ?<br></div></blockquote><div><br>Yes - it&#39;s just Python methods that you call to run code and so on. I&#39;m assuming your widget takes care of actually letting the user type things in.<br>

 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div id=":12b">
Yes I got that already, however how do I redirect output ?<br></div></blockquote><div><br>In Python, there are two kinds of output: firstly from &quot;print x&quot;, for which you can simply redirect stdout - replace sys.stdout with an object with a .write() method, which will capture strings written to it and display them in your console.<br>

<br>Secondly, if you simply enter &quot;x&quot; at a prompt, IPython displays the value of x at an &quot;Out [n]:&quot; prompt. In such cases, Python calls sys.displayhook. This is called with the object itself, rather than its repr, so you can produce more complex displays. This is how we pretty-print datastructures, and also how the notebook can display rich objects like youtube videos. Have a look at IPython.core.displayhook to see our implementation of this. If you replace the displayhook attribute of an InteractiveShell object, it will take care of using that displayhook when you call run_cell.<br>

<br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div id=":12b">
<div class="im">
</div>OK.<br>
For complete : it actually does exactly what happens when I hit the tab key<br>
on the ipython console ?<br></div></blockquote><div><br>It provides the machinery to find the completions for a given input. The frontend has to take care of catching the tab key (or some other shortcut) and applying or displaying the returned completion(s).<br>

 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div id=":12b">
How do I manage multiple lines command ?<br></div></blockquote><div><br>You can use an InputSplitter to determine if another line is acceptable - have a look at the code for the terminal frontend:<br><a href="https://github.com/ipython/ipython/blob/master/IPython/frontend/terminal/interactiveshell.py#L318">https://github.com/ipython/ipython/blob/master/IPython/frontend/terminal/interactiveshell.py#L318</a><br>

 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div id=":12b">
Le me be clear : how do I know a command is not complete  so I should print<br>
a prompt with a tab ?<br>
Is there a method that deals with managing all that for me ?</div></blockquote></div><br>I&#39;m not quite sure what you mean with this part, but hopefully what I&#39;ve described above will help.<br><br>Best wishes,<br>

Thomas<br>