Defining prompts via hooks
The following example shows how to define input and output prompts via hooks:
1 import os
2 from IPython import ipapi, Prompts
3
4 def myinputprompt(self, cont):
5 ip = self.api
6 count = str(len(ip.user_ns["_ih"]))
7 colors = Prompts.PromptColors[""].colors
8 pwd = os.getcwd()
9 if cont:
10 return "%s%s%s: " % ( \
colors.in_prompt2,
11 "."*(4+len(pwd)+1+len(count)+1),
12 colors.normal)
13 else:
14 return "%sIn [%s|%s%s%s]: %s" % ( \
colors.in_prompt,
15 pwd,
16 colors.out_number,
17 count,
18 colors.in_prompt,
19 colors.normal)
20
21 def myoutputprompt(self):
22 ip = self.api
23 count = str(len(ip.user_ns["_ih"]))
24 colors = Prompts.PromptColors[""].colors
25 pwd = os.getcwd()
26 prompt = "%sOut[%s|%s%s%s]: %s" % ( \
colors.out_prompt,
27 pwd,
28 colors.out_number,
29 count,
30 colors.out_prompt,
31 colors.normal)
32 return prompt
33
34 ipapi.get().set_hook("generate_prompt", myinputprompt)
35 ipapi.get().set_hook("generate_output_prompt", myoutputprompt)