##// END OF EJS Templates
ENH: Add a 'Minimal' xmode option....
Dan Allan -
Show More
@@ -580,7 +580,7 b' class InteractiveShell(SingletonConfigurable):'
580 separate_out = SeparateUnicode('').tag(config=True)
580 separate_out = SeparateUnicode('').tag(config=True)
581 separate_out2 = SeparateUnicode('').tag(config=True)
581 separate_out2 = SeparateUnicode('').tag(config=True)
582 wildcards_case_sensitive = Bool(True).tag(config=True)
582 wildcards_case_sensitive = Bool(True).tag(config=True)
583 xmode = CaselessStrEnum(('Context','Plain', 'Verbose'),
583 xmode = CaselessStrEnum(('Context', 'Plain', 'Verbose', 'Minimal'),
584 default_value='Context',
584 default_value='Context',
585 help="Switch modes for the IPython exception handlers."
585 help="Switch modes for the IPython exception handlers."
586 ).tag(config=True)
586 ).tag(config=True)
@@ -1788,7 +1788,7 b' class InteractiveShell(SingletonConfigurable):'
1788
1788
1789 # The interactive one is initialized with an offset, meaning we always
1789 # The interactive one is initialized with an offset, meaning we always
1790 # want to remove the topmost item in the traceback, which is our own
1790 # want to remove the topmost item in the traceback, which is our own
1791 # internal code. Valid modes: ['Plain','Context','Verbose']
1791 # internal code. Valid modes: ['Plain','Context','Verbose','Minimal']
1792 self.InteractiveTB = ultratb.AutoFormattedTB(mode = 'Plain',
1792 self.InteractiveTB = ultratb.AutoFormattedTB(mode = 'Plain',
1793 color_scheme='NoColor',
1793 color_scheme='NoColor',
1794 tb_offset = 1,
1794 tb_offset = 1,
@@ -363,7 +363,7 b' Currently the magic system has the following functions:""",'
363 def xmode(self, parameter_s=''):
363 def xmode(self, parameter_s=''):
364 """Switch modes for the exception handlers.
364 """Switch modes for the exception handlers.
365
365
366 Valid modes: Plain, Context and Verbose.
366 Valid modes: Plain, Context, Verbose, and Minimal.
367
367
368 If called without arguments, acts as a toggle."""
368 If called without arguments, acts as a toggle."""
369
369
@@ -111,6 +111,9 b' class NonAsciiTest(unittest.TestCase):'
111 with tt.AssertPrints(expected):
111 with tt.AssertPrints(expected):
112 ip.run_cell(cell)
112 ip.run_cell(cell)
113
113
114 ip.run_cell("%xmode minimal")
115 with tt.AssertPrints(u"Exception: Γ©"):
116 ip.run_cell(cell)
114
117
115 class NestedGenExprTestCase(unittest.TestCase):
118 class NestedGenExprTestCase(unittest.TestCase):
116 """
119 """
@@ -1251,7 +1251,7 b' class FormattedTB(VerboseTB, ListTB):'
1251 parent=None, config=None):
1251 parent=None, config=None):
1252
1252
1253 # NEVER change the order of this list. Put new modes at the end:
1253 # NEVER change the order of this list. Put new modes at the end:
1254 self.valid_modes = ['Plain', 'Context', 'Verbose']
1254 self.valid_modes = ['Plain', 'Context', 'Verbose', 'Minimal']
1255 self.verbose_modes = self.valid_modes[1:3]
1255 self.verbose_modes = self.valid_modes[1:3]
1256
1256
1257 VerboseTB.__init__(self, color_scheme=color_scheme, call_pdb=call_pdb,
1257 VerboseTB.__init__(self, color_scheme=color_scheme, call_pdb=call_pdb,
@@ -1262,7 +1262,8 b' class FormattedTB(VerboseTB, ListTB):'
1262
1262
1263 # Different types of tracebacks are joined with different separators to
1263 # Different types of tracebacks are joined with different separators to
1264 # form a single string. They are taken from this dict
1264 # form a single string. They are taken from this dict
1265 self._join_chars = dict(Plain='', Context='\n', Verbose='\n')
1265 self._join_chars = dict(Plain='', Context='\n', Verbose='\n',
1266 Minimal='')
1266 # set_mode also sets the tb_join_char attribute
1267 # set_mode also sets the tb_join_char attribute
1267 self.set_mode(mode)
1268 self.set_mode(mode)
1268
1269
@@ -1280,6 +1281,8 b' class FormattedTB(VerboseTB, ListTB):'
1280 return VerboseTB.structured_traceback(
1281 return VerboseTB.structured_traceback(
1281 self, etype, value, tb, tb_offset, number_of_lines_of_context
1282 self, etype, value, tb, tb_offset, number_of_lines_of_context
1282 )
1283 )
1284 elif mode == 'Minimal':
1285 return ListTB.get_exception_only(self, etype, value)
1283 else:
1286 else:
1284 # We must check the source cache because otherwise we can print
1287 # We must check the source cache because otherwise we can print
1285 # out-of-date source code.
1288 # out-of-date source code.
@@ -1324,6 +1327,9 b' class FormattedTB(VerboseTB, ListTB):'
1324 def verbose(self):
1327 def verbose(self):
1325 self.set_mode(self.valid_modes[2])
1328 self.set_mode(self.valid_modes[2])
1326
1329
1330 def minimal(self):
1331 self.set_mode(self.valid_modes[3])
1332
1327
1333
1328 #----------------------------------------------------------------------------
1334 #----------------------------------------------------------------------------
1329 class AutoFormattedTB(FormattedTB):
1335 class AutoFormattedTB(FormattedTB):
General Comments 0
You need to be logged in to leave comments. Login now