[IPython-user] Prompt

Fernando.Perez at colorado.edu Fernando.Perez at colorado.edu
Wed Mar 16 04:44:16 CST 2005


Quoting Frédéric Mantegazza <mantegazza at ill.fr>:

> Yes, this is OK for me ! As I said, I want to use the prompt as a little
> status bar. So I only need to put 2 or 3 values which will be taken and
> refreshed from my app. If your dict could be rebinded to a user dict, it
> should work.

As it turns out, IPython actually already did have support for dynamic prompts. 
We just didn't know it :)  I've added this to the manual:

#####
IPython supports the evaluation of arbitrary expressions in your prompt string.
The prompt strings are evaluated through the syntax of PEP 215, but basically
you can use $x.y to expand the value of x.y, and for more complicated
expressions you can use braces: ${foo()+x} will call function foo and add to it
the value of x, before putting the result into your prompt. For example, using
prompt_in1 '${commands.getoutput("uptime")}\nIn [\#]: '
will print the result of the uptime command on each prompt (assuming the
commands module has been imported in your ipythonrc file).
#####

Note that in 0.6.12, the above is actually extremely brittle, and it doesn't
really work with the user interactive namespace.  But a few small fixes, now in
CVS, seem to make it work quite well.  Give the CVS version a try, and let me
know if this is enough for your needs.

best,

f




More information about the IPython-user mailing list