13
13
__all__ = ["InteractiveInterpreter" , "InteractiveConsole" , "interact" ,
14
14
"compile_command" ]
15
15
16
+
16
17
class InteractiveInterpreter :
17
18
"""Base class for InteractiveConsole.
18
19
@@ -112,7 +113,7 @@ def showsyntaxerror(self, filename=None, **kwargs):
112
113
sys .last_type = type
113
114
sys .last_value = value
114
115
sys .last_traceback = tb
115
- if filename and type is SyntaxError :
116
+ if filename and type and issubclass ( type , SyntaxError ) :
116
117
value .filename = filename
117
118
# Set the line of text that the exception refers to
118
119
source = kwargs .pop ('source' , '' )
@@ -121,7 +122,8 @@ def showsyntaxerror(self, filename=None, **kwargs):
121
122
and not value .text and len (lines ) >= value .lineno ):
122
123
value .text = lines [value .lineno - 1 ]
123
124
if sys .excepthook is sys .__excepthook__ :
124
- lines = traceback .format_exception_only (type , value , colorize = colorize )
125
+ lines = traceback .format_exception_only (
126
+ type , value , colorize = colorize )
125
127
self .write ('' .join (lines ))
126
128
else :
127
129
# If someone has set sys.excepthook, we let that take precedence
@@ -142,7 +144,8 @@ def showtraceback(self, **kwargs):
142
144
sys .last_exc = ei [1 ]
143
145
try :
144
146
if sys .excepthook is sys .__excepthook__ :
145
- lines = traceback .format_exception (ei [0 ], ei [1 ], last_tb .tb_next , colorize = colorize )
147
+ lines = traceback .format_exception (
148
+ ei [0 ], ei [1 ], last_tb .tb_next , colorize = colorize )
146
149
self .write ('' .join (lines ))
147
150
else :
148
151
# If someone has set sys.excepthook, we let that take precedence
@@ -376,7 +379,7 @@ def interact(banner=None, readfunc=None, local=None, exitmsg=None, local_exit=Fa
376
379
377
380
parser = argparse .ArgumentParser ()
378
381
parser .add_argument ('-q' , action = 'store_true' ,
379
- help = "don't print version and copyright messages" )
382
+ help = "don't print version and copyright messages" )
380
383
args = parser .parse_args ()
381
384
if args .q or sys .flags .quiet :
382
385
banner = ''
0 commit comments