##// END OF EJS Templates
update flags&aliases for two-process apps...
MinRK -
Show More
@@ -198,8 +198,6 b' class IPythonMixinConsoleApp(Configurable):'
198 198 # Scrub frontend-specific flags
199 199 swallow_next = False
200 200 was_flag = False
201 # copy again, in case some aliases have the same name as a flag
202 # argv = list(self.kernel_argv)
203 201 for a in argv:
204 202 if swallow_next:
205 203 swallow_next = False
@@ -50,7 +50,7 b' from IPython.zmq.session import Session, default_secure'
50 50 from IPython.zmq.zmqshell import ZMQInteractiveShell
51 51
52 52 from IPython.frontend.kernelmixinapp import (
53 IPythonMixinConsoleApp, app_aliases, app_flags
53 IPythonMixinConsoleApp, app_aliases, app_flags, flags, aliases
54 54 )
55 55
56 56 #-----------------------------------------------------------------------------
@@ -72,8 +72,8 b' ipython qtconsole --pylab=inline # start with pylab in inline plotting mode'
72 72 # Aliases and Flags
73 73 #-----------------------------------------------------------------------------
74 74
75 # XXX: the app_flags should really be flags from the mixin
76 flags = dict(app_flags)
75 # start with copy of flags
76 flags = dict(flags)
77 77 qt_flags = {
78 78 'pure' : ({'IPythonQtConsoleApp' : {'pure' : True}},
79 79 "Use a pure Python kernel instead of an IPython kernel."),
@@ -85,10 +85,13 b' qt_flags.update(boolean_flag('
85 85 "use a GUI widget for tab completion",
86 86 "use plaintext output for completion"
87 87 ))
88 # and app_flags from the Console Mixin
89 qt_flags.update(app_flags)
90 # add frontend flags to the full set
88 91 flags.update(qt_flags)
89 92
90 aliases = dict(app_aliases)
91
93 # start with copy of front&backend aliases list
94 aliases = dict(aliases)
92 95 qt_aliases = dict(
93 96
94 97 style = 'IPythonWidget.syntax_style',
@@ -98,8 +101,17 b' qt_aliases = dict('
98 101 editor = 'IPythonWidget.editor',
99 102 paging = 'ConsoleWidget.paging',
100 103 )
104 # and app_aliases from the Console Mixin
105 qt_aliases.update(app_aliases)
106 # add frontend aliases to the full set
101 107 aliases.update(qt_aliases)
102 108
109 # get flags&aliases into sets, and remove a couple that
110 # shouldn't be scrubbed from backend flags:
111 qt_aliases = set(qt_aliases.keys())
112 qt_aliases.remove('colors')
113 qt_flags = set(qt_flags.keys())
114
103 115 #-----------------------------------------------------------------------------
104 116 # Classes
105 117 #-----------------------------------------------------------------------------
@@ -157,11 +169,8 b' class IPythonQtConsoleApp(BaseIPythonApplication, IPythonMixinConsoleApp):'
157 169
158 170 def parse_command_line(self, argv=None):
159 171 super(IPythonQtConsoleApp, self).parse_command_line(argv)
160 IPythonMixinConsoleApp.parse_command_line(self,argv)
161 172 self.swallow_args(qt_aliases,qt_flags,argv=argv)
162 173
163
164
165 174
166 175 def new_frontend_master(self):
167 176 """ Create and return new frontend attached to new kernel, launched on localhost.
@@ -115,7 +115,8 b' class IPAppCrashHandler(CrashHandler):'
115 115 #-----------------------------------------------------------------------------
116 116 flags = dict(base_flags)
117 117 flags.update(shell_flags)
118 addflag = lambda *args: flags.update(boolean_flag(*args))
118 frontend_flags = {}
119 addflag = lambda *args: frontend_flags.update(boolean_flag(*args))
119 120 addflag('autoedit-syntax', 'TerminalInteractiveShell.autoedit_syntax',
120 121 'Turn on auto editing of files with syntax errors.',
121 122 'Turn off auto editing of files with syntax errors.'
@@ -146,7 +147,7 b" classic_config.InteractiveShell.separate_out2 = ''"
146 147 classic_config.InteractiveShell.colors = 'NoColor'
147 148 classic_config.InteractiveShell.xmode = 'Plain'
148 149
149 flags['classic']=(
150 frontend_flags['classic']=(
150 151 classic_config,
151 152 "Gives IPython a similar feel to the classic Python prompt."
152 153 )
@@ -156,21 +157,22 b" flags['classic']=("
156 157 # help="Start logging to the default log file (./ipython_log.py).")
157 158 #
158 159 # # quick is harder to implement
159 flags['quick']=(
160 frontend_flags['quick']=(
160 161 {'TerminalIPythonApp' : {'quick' : True}},
161 162 "Enable quick startup with no config files."
162 163 )
163 164
164 flags['i'] = (
165 frontend_flags['i'] = (
165 166 {'TerminalIPythonApp' : {'force_interact' : True}},
166 167 """If running code from the command line, become interactive afterwards.
167 168 Note: can also be given simply as '-i.'"""
168 169 )
169 flags['pylab'] = (
170 frontend_flags['pylab'] = (
170 171 {'TerminalIPythonApp' : {'pylab' : 'auto'}},
171 172 """Pre-load matplotlib and numpy for interactive use with
172 173 the default matplotlib backend."""
173 174 )
175 flags.update(frontend_flags)
174 176
175 177 aliases = dict(base_aliases)
176 178 aliases.update(shell_aliases)
@@ -17,7 +17,7 b' import signal'
17 17 import sys
18 18 import time
19 19
20 from IPython.frontend.terminal.ipapp import TerminalIPythonApp
20 from IPython.frontend.terminal.ipapp import TerminalIPythonApp, frontend_flags as term_flags
21 21
22 22 from IPython.utils.traitlets import (
23 23 Dict, List, Unicode, Int, CaselessStrEnum, CBool, Any
@@ -26,7 +26,7 b' from IPython.zmq.ipkernel import IPKernelApp'
26 26 from IPython.zmq.session import Session, default_secure
27 27 from IPython.zmq.zmqshell import ZMQInteractiveShell
28 28 from IPython.frontend.kernelmixinapp import (
29 IPythonMixinConsoleApp, app_aliases, app_flags
29 IPythonMixinConsoleApp, app_aliases, app_flags, aliases, app_aliases, flags
30 30 )
31 31
32 32 from IPython.frontend.zmqterminal.interactiveshell import ZMQTerminalInteractiveShell
@@ -44,18 +44,31 b' ipython console --existing # connect to an existing ipython session'
44 44 # Flags and Aliases
45 45 #-----------------------------------------------------------------------------
46 46
47 # XXX: the app_flags should really be flags from the mixin
48 flags = dict(app_flags)
49 frontend_flags = { }
47 # copy flags from mixin:
48 flags = dict(flags)
49 # start with mixin frontend flags:
50 frontend_flags = dict(app_flags)
51 # add TerminalIPApp flags:
52 frontend_flags.update(term_flags)
53 # pylab is not frontend-specific in two-process IPython
54 frontend_flags.pop('pylab')
55 # disable quick startup, as it won't propagate to the kernel anyway
56 frontend_flags.pop('quick')
57 # update full dict with frontend flags:
50 58 flags.update(frontend_flags)
51 59
52 frontend_flags = frontend_flags.keys()
53
54 aliases = dict(app_aliases)
60 # copy flags from mixin
61 aliases = dict(aliases)
62 # start with mixin frontend flags
63 frontend_aliases = dict(app_aliases)
64 # load updated frontend flags into full dict
65 aliases.update(frontend_aliases)
55 66
56 frontend_aliases = dict()
67 # get flags&aliases into sets, and remove a couple that
68 # shouldn't be scrubbed from backend flags:
69 frontend_aliases = set(frontend_aliases.keys())
70 frontend_flags = set(frontend_flags.keys())
57 71
58 aliases.update(frontend_aliases)
59 72
60 73 #-----------------------------------------------------------------------------
61 74 # Classes
@@ -63,7 +76,7 b' aliases.update(frontend_aliases)'
63 76
64 77
65 78 class ZMQTerminalIPythonApp(TerminalIPythonApp, IPythonMixinConsoleApp):
66 name = "ipython console"
79 name = "ipython-console"
67 80 """Start a terminal frontend to the IPython zmq kernel."""
68 81
69 82 description = """
@@ -83,13 +96,13 b' class ZMQTerminalIPythonApp(TerminalIPythonApp, IPythonMixinConsoleApp):'
83 96 """
84 97 examples = _examples
85 98
86 classes = List([IPKernelApp, ZMQTerminalInteractiveShell])
99 classes = List([IPKernelApp, ZMQTerminalInteractiveShell, Session])
87 100 flags = Dict(flags)
88 101 aliases = Dict(aliases)
89 102 subcommands = Dict()
103
90 104 def parse_command_line(self, argv=None):
91 105 super(ZMQTerminalIPythonApp, self).parse_command_line(argv)
92 IPythonMixinConsoleApp.parse_command_line(self,argv)
93 106 self.swallow_args(frontend_aliases,frontend_flags,argv=argv)
94 107
95 108 def init_shell(self):
General Comments 0
You need to be logged in to leave comments. Login now