##// END OF EJS Templates
PromptManager fixes...
MinRK -
Show More
@@ -315,10 +315,37 b' class InteractiveShell(SingletonConfigurable, Magic):'
315 315 help="Save multi-line entries as one entry in readline history"
316 316 )
317 317
318 prompt_in1 = Unicode('In [\\#]: ', config=True)
319 prompt_in2 = Unicode(' .\\D.: ', config=True)
320 prompt_out = Unicode('Out[\\#]: ', config=True)
321 prompts_pad_left = CBool(True, config=True)
318 # deprecated prompt traits:
319
320 prompt_in1 = Unicode('In [\\#]: ', config=True,
321 help="Deprecated, use PromptManager.in_template")
322 prompt_in2 = Unicode(' .\\D.: ', config=True,
323 help="Deprecated, use PromptManager.in2_template")
324 prompt_out = Unicode('Out[\\#]: ', config=True,
325 help="Deprecated, use PromptManager.out_template")
326 prompts_pad_left = CBool(True, config=True,
327 help="Deprecated, use PromptManager.justify")
328
329 def _prompt_trait_changed(self, name, old, new):
330 table = {
331 'prompt_in1' : 'in_template',
332 'prompt_in2' : 'in2_template',
333 'prompt_out' : 'out_template',
334 'prompts_pad_left' : 'justify',
335 }
336 warn("InteractiveShell.{name} is deprecated, use PromptManager.{newname}\n".format(
337 name=name, newname=table[name])
338 )
339 # protect against weird cases where self.config may not exist:
340 if self.config is not None:
341 # propagate to corresponding PromptManager trait
342 setattr(self.config.PromptManager, table[name], new)
343
344 _prompt_in1_changed = _prompt_trait_changed
345 _prompt_in2_changed = _prompt_trait_changed
346 _prompt_out_changed = _prompt_trait_changed
347 _prompt_pad_left_changed = _prompt_trait_changed
348
322 349 quiet = CBool(False, config=True)
323 350
324 351 history_length = Integer(10000, config=True)
@@ -254,10 +254,14 b' class PromptManager(Configurable):'
254 254 """)
255 255 def _lazy_evaluate_fields_default(self): return lazily_evaluate.copy()
256 256
257 in_template = Unicode('In [\\#]: ', config=True)
258 in2_template = Unicode(' .\\D.: ', config=True)
259 out_template = Unicode('Out[\\#]: ', config=True)
260 rewrite_template = Unicode("------> ", config=True)
257 in_template = Unicode('In [\\#]: ', config=True,
258 help="Input prompt. '\\#' will be transformed to the prompt number")
259 in2_template = Unicode(' .\\D.: ', config=True,
260 help="Continuation prompt.")
261 out_template = Unicode('Out[\\#]: ', config=True,
262 help="Output prompt. '\\#' will be transformed to the prompt number")
263 rewrite_template = Unicode("------> ", config=True,
264 help="Rewrite prompt. When inputs are transformed, the rewritten input will follow this.")
261 265
262 266 justify = Bool(True, config=True, help="""
263 267 If True (default), each prompt will be right-aligned with the
@@ -38,6 +38,7 b' from IPython.core import usage'
38 38 from IPython.core.completer import IPCompleter
39 39 from IPython.core.crashhandler import CrashHandler
40 40 from IPython.core.formatters import PlainTextFormatter
41 from IPython.core.prompts import PromptManager
41 42 from IPython.core.application import (
42 43 ProfileDir, BaseIPythonApplication, base_flags, base_aliases
43 44 )
@@ -133,9 +134,9 b" addflag('term-title', 'TerminalInteractiveShell.term_title',"
133 134 classic_config = Config()
134 135 classic_config.InteractiveShell.cache_size = 0
135 136 classic_config.PlainTextFormatter.pprint = False
136 classic_config.InteractiveShell.prompt_in1 = '>>> '
137 classic_config.InteractiveShell.prompt_in2 = '... '
138 classic_config.InteractiveShell.prompt_out = ''
137 classic_config.PromptManager.in_template = '>>> '
138 classic_config.PromptManager.in2_template = '... '
139 classic_config.PromptManager.out_template = ''
139 140 classic_config.InteractiveShell.separate_in = ''
140 141 classic_config.InteractiveShell.separate_out = ''
141 142 classic_config.InteractiveShell.separate_out2 = ''
@@ -197,6 +198,7 b' class TerminalIPythonApp(BaseIPythonApplication, InteractiveShellApp):'
197 198 InteractiveShellApp, # ShellApp comes before TerminalApp, because
198 199 self.__class__, # it will also affect subclasses (e.g. QtConsole)
199 200 TerminalInteractiveShell,
201 PromptManager,
200 202 ProfileDir,
201 203 PlainTextFormatter,
202 204 IPCompleter,
@@ -202,9 +202,9 b' def ipexec(fname, options=None):'
202 202
203 203 # For these subprocess calls, eliminate all prompt printing so we only see
204 204 # output from script execution
205 prompt_opts = [ '--InteractiveShell.prompt_in1=""',
206 '--InteractiveShell.prompt_in2=""',
207 '--InteractiveShell.prompt_out=""'
205 prompt_opts = [ '--PromptManager.in_template=""',
206 '--PromptManager.in2_template=""',
207 '--PromptManager.out_template=""'
208 208 ]
209 209 cmdargs = ' '.join(default_argv() + prompt_opts + options)
210 210
@@ -23,10 +23,10 b' try:'
23 23 except NameError:
24 24 nested = 0
25 25 cfg = Config()
26 shell_config = cfg.InteractiveShellEmbed
27 shell_config.prompt_in1 = 'In <\\#>: '
28 shell_config.prompt_in2 = ' .\\D.: '
29 shell_config.prompt_out = 'Out<\\#>: '
26 prompt_config = cfg.PromptManager
27 prompt_config.in_template = 'In <\\#>: '
28 prompt_config.in2_template = ' .\\D.: '
29 prompt_config.out_template = 'Out<\\#>: '
30 30 else:
31 31 print "Running nested copies of IPython."
32 32 print "The prompts for the nested copy have been modified"
@@ -46,12 +46,12 b' ipshell = InteractiveShellEmbed(config=cfg,'
46 46
47 47 # Make a second instance, you can have as many as you want.
48 48 cfg2 = cfg.copy()
49 shell_config = cfg2.InteractiveShellEmbed
50 shell_config.prompt_in1 = 'In2<\\#>: '
49 prompt_config = cfg2.PromptManager
50 prompt_config.in_template = 'In2<\\#>: '
51 51 if not nested:
52 shell_config.prompt_in1 = 'In2<\\#>: '
53 shell_config.prompt_in2 = ' .\\D.: '
54 shell_config.prompt_out = 'Out<\\#>: '
52 prompt_config.in_template = 'In2<\\#>: '
53 prompt_config.in2_template = ' .\\D.: '
54 prompt_config.out_template = 'Out<\\#>: '
55 55 ipshell2 = InteractiveShellEmbed(config=cfg,
56 56 banner1 = 'Second IPython instance.')
57 57
@@ -227,7 +227,7 b' All options with a [no] prepended can be specified in negated form'
227 227 circular file inclusions, IPython will stop if it reaches 15
228 228 recursive inclusions.
229 229
230 ``InteractiveShell.prompt_in1=<string>``
230 ``PromptManager.in_template=<string>``
231 231
232 232 Specify the string used for input prompts. Note that if you are using
233 233 numbered prompts, the number is represented with a '\#' in the
@@ -236,7 +236,7 b' All options with a [no] prepended can be specified in negated form'
236 236 discusses in detail all the available escapes to customize your
237 237 prompts.
238 238
239 ``InteractiveShell.prompt_in2=<string>``
239 ``PromptManager.in2_template=<string>``
240 240 Similar to the previous option, but used for the continuation
241 241 prompts. The special sequence '\D' is similar to '\#', but
242 242 with all digits replaced dots (so you can have your
@@ -244,9 +244,9 b' All options with a [no] prepended can be specified in negated form'
244 244 ' .\D.:' (note three spaces at the start for alignment with
245 245 'In [\#]').
246 246
247 ``InteractiveShell.prompt_out=<string>``
247 ``PromptManager.out_template=<string>``
248 248 String used for output prompts, also uses numbers like
249 prompt_in1. Default: 'Out[\#]:'
249 in_template. Default: 'Out[\#]:'
250 250
251 251 ``--quick``
252 252 start in bare bones mode (no config file loaded).
@@ -155,8 +155,8 b' Prompt customization'
155 155
156 156 The sh profile uses the following prompt configurations::
157 157
158 o.prompt_in1= r'\C_LightBlue[\C_LightCyan\Y2\C_LightBlue]\C_Green|\#>'
159 o.prompt_in2= r'\C_Green|\C_LightGreen\D\C_Green>'
158 o.PromptManager.in_template= r'\C_LightBlue[\C_LightCyan\Y2\C_LightBlue]\C_Green|\#>'
159 o.PromptManager.in2_template= r'\C_Green|\C_LightGreen\D\C_Green>'
160 160
161 161 You can change the prompt configuration to your liking by editing
162 162 ipython_config.py.
General Comments 0
You need to be logged in to leave comments. Login now