##// END OF EJS Templates
Backport PR #12543: allow specifying multiple extensions on the command-line with traitlets 5
Matthias Bussonnier -
Show More
@@ -19,8 +19,10 b' from IPython.core.application import SYSTEM_CONFIG_DIRS, ENV_CONFIG_DIRS'
19 from IPython.core import pylabtools
19 from IPython.core import pylabtools
20 from IPython.utils.contexts import preserve_keys
20 from IPython.utils.contexts import preserve_keys
21 from IPython.utils.path import filefind
21 from IPython.utils.path import filefind
22 import traitlets
22 from traitlets import (
23 from traitlets import (
23 Unicode, Instance, List, Bool, CaselessStrEnum, observe,
24 Unicode, Instance, List, Bool, CaselessStrEnum, observe,
25 DottedObjectName,
24 )
26 )
25 from IPython.terminal import pt_inputhooks
27 from IPython.terminal import pt_inputhooks
26
28
@@ -89,13 +91,18 b' shell_aliases = dict('
89 logappend='InteractiveShell.logappend',
91 logappend='InteractiveShell.logappend',
90 c='InteractiveShellApp.code_to_run',
92 c='InteractiveShellApp.code_to_run',
91 m='InteractiveShellApp.module_to_run',
93 m='InteractiveShellApp.module_to_run',
92 ext='InteractiveShellApp.extra_extension',
94 ext="InteractiveShellApp.extra_extensions",
93 gui='InteractiveShellApp.gui',
95 gui='InteractiveShellApp.gui',
94 pylab='InteractiveShellApp.pylab',
96 pylab='InteractiveShellApp.pylab',
95 matplotlib='InteractiveShellApp.matplotlib',
97 matplotlib='InteractiveShellApp.matplotlib',
96 )
98 )
97 shell_aliases['cache-size'] = 'InteractiveShell.cache_size'
99 shell_aliases['cache-size'] = 'InteractiveShell.cache_size'
98
100
101 if traitlets.version_info < (5, 0):
102 # traitlets 4 doesn't handle lists on CLI
103 shell_aliases["ext"] = "InteractiveShellApp.extra_extension"
104
105
99 #-----------------------------------------------------------------------------
106 #-----------------------------------------------------------------------------
100 # Main classes and functions
107 # Main classes and functions
101 #-----------------------------------------------------------------------------
108 #-----------------------------------------------------------------------------
@@ -118,8 +125,27 b' class InteractiveShellApp(Configurable):'
118 extensions = List(Unicode(),
125 extensions = List(Unicode(),
119 help="A list of dotted module names of IPython extensions to load."
126 help="A list of dotted module names of IPython extensions to load."
120 ).tag(config=True)
127 ).tag(config=True)
121 extra_extension = Unicode('',
128
122 help="dotted module name of an IPython extension to load."
129 extra_extension = Unicode(
130 "",
131 help="""
132 DEPRECATED. Dotted module name of a single extra IPython extension to load.
133
134 Only one extension can be added this way.
135
136 Only used with traitlets < 5.0, plural extra_extensions list is used in traitlets 5.
137 """,
138 ).tag(config=True)
139
140 extra_extensions = List(
141 DottedObjectName(),
142 help="""
143 Dotted module name(s) of one or more IPython extensions to load.
144
145 For specifying extra extensions to load on the command-line.
146
147 .. versionadded:: 7.10
148 """,
123 ).tag(config=True)
149 ).tag(config=True)
124
150
125 reraise_ipython_extension_failures = Bool(False,
151 reraise_ipython_extension_failures = Bool(False,
@@ -264,7 +290,9 b' class InteractiveShellApp(Configurable):'
264 """
290 """
265 try:
291 try:
266 self.log.debug("Loading IPython extensions...")
292 self.log.debug("Loading IPython extensions...")
267 extensions = self.default_extensions + self.extensions
293 extensions = (
294 self.default_extensions + self.extensions + self.extra_extensions
295 )
268 if self.extra_extension:
296 if self.extra_extension:
269 extensions.append(self.extra_extension)
297 extensions.append(self.extra_extension)
270 for ext in extensions:
298 for ext in extensions:
General Comments 0
You need to be logged in to leave comments. Login now