Show More
@@ -35,7 +35,7 b' from IPython.extensions.storemagic import StoreMagics' | |||
|
35 | 35 | from .interactiveshell import TerminalInteractiveShell |
|
36 | 36 | from IPython.paths import get_ipython_dir |
|
37 | 37 | from traitlets import ( |
|
38 | Bool, List, Dict, default, observe, | |
|
38 | Bool, List, Dict, default, observe, Type | |
|
39 | 39 | ) |
|
40 | 40 | |
|
41 | 41 | #----------------------------------------------------------------------------- |
@@ -185,6 +185,13 b' class TerminalIPythonApp(BaseIPythonApplication, InteractiveShellApp):' | |||
|
185 | 185 | flags = Dict(flags) |
|
186 | 186 | aliases = Dict(aliases) |
|
187 | 187 | classes = List() |
|
188 | ||
|
189 | interactive_shell_class = Type( | |
|
190 | klass=object, # use default_value otherwise which only allow subclasses. | |
|
191 | default_value=TerminalInteractiveShell, | |
|
192 | help="Class to use to instantiate the TerminalInteractiveShell object. Useful for custom Frontends" | |
|
193 | ).tag(config=True) | |
|
194 | ||
|
188 | 195 | @default('classes') |
|
189 | 196 | def _classes_default(self): |
|
190 | 197 | """This has to be in a method, for TerminalIPythonApp to be available.""" |
@@ -320,7 +327,7 b' class TerminalIPythonApp(BaseIPythonApplication, InteractiveShellApp):' | |||
|
320 | 327 | # shell.display_banner should always be False for the terminal |
|
321 | 328 | # based app, because we call shell.show_banner() by hand below |
|
322 | 329 | # so the banner shows *before* all extension loading stuff. |
|
323 |
self.shell = |
|
|
330 | self.shell = self.interactive_shell_class.instance(parent=self, | |
|
324 | 331 | profile_dir=self.profile_dir, |
|
325 | 332 | ipython_dir=self.ipython_dir, user_ns=self.user_ns) |
|
326 | 333 | self.shell.configurables.append(self) |
@@ -10,7 +10,6 b' This document describes in-flight development work.' | |||
|
10 | 10 | conflicts for other Pull Requests). Instead, create a new file in the |
|
11 | 11 | `docs/source/whatsnew/pr` folder |
|
12 | 12 | |
|
13 | ||
|
14 | 13 | .. DO NOT EDIT THIS LINE BEFORE RELEASE. FEATURE INSERTION POINT. |
|
15 | 14 | |
|
16 | 15 |
@@ -2,6 +2,20 b'' | |||
|
2 | 2 | 5.x Series |
|
3 | 3 | ============ |
|
4 | 4 | |
|
5 | IPython 5.4 | |
|
6 | =========== | |
|
7 | ||
|
8 | Configurable TerminalInteractiveShell | |
|
9 | ------------------------------------- | |
|
10 | ||
|
11 | Backported from the 6.x branch as an exceptional new feature. See | |
|
12 | :ghpull:`10373` and :ghissue:`10364` | |
|
13 | ||
|
14 | IPython gained a new ``c.TerminalIPythonApp.interactive_shell_class`` option | |
|
15 | that allow to customize the class used to start the terminal frontend. This | |
|
16 | should allow user to use custom interfaces, like reviving the former readline | |
|
17 | interface which is now a separate package not maintained by the core team. | |
|
18 | ||
|
5 | 19 | IPython 5.3 |
|
6 | 20 | =========== |
|
7 | 21 |
General Comments 0
You need to be logged in to leave comments.
Login now