1313__all__ = ["InteractiveInterpreter" , "InteractiveConsole" , "interact" ,
1414 "compile_command" ]
1515
16-
1716class InteractiveInterpreter :
1817 """Base class for InteractiveConsole.
1918
@@ -126,7 +125,7 @@ def showtraceback(self):
126125 """
127126 try :
128127 typ , value , tb = sys .exc_info ()
129- self ._showtraceback (typ , value , tb .tb_next , '' )
128+ self ._showtraceback (typ , value , tb .tb_next , "" )
130129 finally :
131130 typ = value = tb = None
132131
@@ -140,7 +139,7 @@ def _showtraceback(self, typ, value, tb, source):
140139 and not value .text and value .lineno is not None
141140 and len (lines ) >= value .lineno ):
142141 value .text = lines [value .lineno - 1 ]
143- sys .last_exc = sys .last_value = value = value . with_traceback ( tb )
142+ sys .last_exc = sys .last_value = value
144143 if sys .excepthook is sys .__excepthook__ :
145144 self ._excepthook (typ , value , tb )
146145 else :
@@ -220,12 +219,17 @@ def interact(self, banner=None, exitmsg=None):
220219 """
221220 try :
222221 sys .ps1
222+ delete_ps1_after = False
223223 except AttributeError :
224224 sys .ps1 = ">>> "
225+ delete_ps1_after = True
225226 try :
226- sys .ps2
227+ _ps2 = sys .ps2
228+ delete_ps2_after = False
227229 except AttributeError :
228230 sys .ps2 = "... "
231+ delete_ps2_after = True
232+
229233 cprt = 'Type "help", "copyright", "credits" or "license" for more information.'
230234 if banner is None :
231235 self .write ("Python %s on %s\n %s\n (%s)\n " %
@@ -288,6 +292,12 @@ def interact(self, banner=None, exitmsg=None):
288292 if _quit is not None :
289293 builtins .quit = _quit
290294
295+ if delete_ps1_after :
296+ del sys .ps1
297+
298+ if delete_ps2_after :
299+ del sys .ps2
300+
291301 if exitmsg is None :
292302 self .write ('now exiting %s...\n ' % self .__class__ .__name__ )
293303 elif exitmsg != '' :
@@ -366,7 +376,7 @@ def interact(banner=None, readfunc=None, local=None, exitmsg=None, local_exit=Fa
366376 console .raw_input = readfunc
367377 else :
368378 try :
369- import readline
379+ import readline # noqa: F401
370380 except ImportError :
371381 pass
372382 console .interact (banner , exitmsg )
@@ -375,9 +385,9 @@ def interact(banner=None, readfunc=None, local=None, exitmsg=None, local_exit=Fa
375385if __name__ == "__main__" :
376386 import argparse
377387
378- parser = argparse .ArgumentParser ()
388+ parser = argparse .ArgumentParser (color = True )
379389 parser .add_argument ('-q' , action = 'store_true' ,
380- help = "don't print version and copyright messages" )
390+ help = "don't print version and copyright messages" )
381391 args = parser .parse_args ()
382392 if args .q or sys .flags .quiet :
383393 banner = ''
0 commit comments