##// END OF EJS Templates
Separate InteractiveShell.input_splitter into two instances....
Thomas Kluyver -
Show More
@@ -283,10 +283,16 b' class InteractiveShell(SingletonConfigurable):'
283 filename = Unicode("<ipython console>")
283 filename = Unicode("<ipython console>")
284 ipython_dir= Unicode('', config=True) # Set to get_ipython_dir() in __init__
284 ipython_dir= Unicode('', config=True) # Set to get_ipython_dir() in __init__
285
285
286 # Input splitter, to split entire cells of input into either individual
286 # Input splitter, to transform input line by line and detect when a block
287 # interactive statements or whole blocks.
287 # is ready to be executed.
288 input_splitter = Instance('IPython.core.inputsplitter.IPythonInputSplitter',
288 input_splitter = Instance('IPython.core.inputsplitter.IPythonInputSplitter',
289 (), {})
289 (), {'line_input_checker': True})
290
291 # This InputSplitter instance is used to transform completed cells before
292 # running them. It allows cell magics to contain blank lines.
293 input_transformer_manager = Instance('IPython.core.inputsplitter.IPythonInputSplitter',
294 (), {'line_input_checker': False})
295
290 logstart = CBool(False, config=True, help=
296 logstart = CBool(False, config=True, help=
291 """
297 """
292 Start logging to the default log file.
298 Start logging to the default log file.
@@ -2581,10 +2587,9 b' class InteractiveShell(SingletonConfigurable):'
2581 if silent:
2587 if silent:
2582 store_history = False
2588 store_history = False
2583
2589
2584 self.input_splitter.push(raw_cell)
2590 self.input_transformer_manager.push(raw_cell)
2591 cell = self.input_transformer_manager.source_reset()
2585
2592
2586 cell = self.input_splitter.source_reset()
2587
2588 # Our own compiler remembers the __future__ environment. If we want to
2593 # Our own compiler remembers the __future__ environment. If we want to
2589 # run code with a separate __future__ environment, use the default
2594 # run code with a separate __future__ environment, use the default
2590 # compiler
2595 # compiler
@@ -35,6 +35,14 b' in attributes of :class:`~IPython.core.inputsplitter.IPythonInputSplitter`:'
35 passed to these, but note that function and class *definitions* are still a
35 passed to these, but note that function and class *definitions* are still a
36 series of separate statements. IPython does not use any of these by default.
36 series of separate statements. IPython does not use any of these by default.
37
37
38 An InteractiveShell instance actually has two
39 :class:`~IPython.core.inputsplitter.IPythonInputSplitter` instances, as the
40 attributes :attr:`~IPython.core.interactiveshell.InteractiveShell.input_splitter`,
41 to tell when a block of input is complete, and
42 :attr:`~IPython.core.interactiveshell.InteractiveShell.input_transformer_manager`,
43 to transform complete cells. If you add a transformer, you should make sure that
44 it gets added to both.
45
38 Stateless transformations
46 Stateless transformations
39 -------------------------
47 -------------------------
40
48
General Comments 0
You need to be logged in to leave comments. Login now