Skip to content

Commit

Permalink
pythongh-102778: revert changes to idlelib (python#102825)
Browse files Browse the repository at this point in the history
  • Loading branch information
iritkatriel authored and Fidget-Spinner committed Mar 27, 2023
1 parent 2cfaac1 commit 4746094
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 24 deletions.
3 changes: 1 addition & 2 deletions Lib/idlelib/idle_test/test_stackviewer.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ def setUpClass(cls):
except NameError:
svs.last_type, svs.last_value, svs.last_traceback = (
sys.exc_info())
svs.last_exc = svs.last_value

requires('gui')
cls.root = Tk()
Expand All @@ -28,7 +27,7 @@ def setUpClass(cls):
@classmethod
def tearDownClass(cls):
svs = stackviewer.sys
del svs.last_exc, svs.last_traceback, svs.last_type, svs.last_value
del svs.last_traceback, svs.last_type, svs.last_value

cls.root.update_idletasks()
## for id in cls.root.tk.call('after', 'info'):
Expand Down
7 changes: 2 additions & 5 deletions Lib/idlelib/pyshell.py
Original file line number Diff line number Diff line change
Expand Up @@ -1367,14 +1367,11 @@ def open_stack_viewer(self, event=None):
if self.interp.rpcclt:
return self.interp.remote_stack_viewer()
try:
if hasattr(sys, 'last_exc'):
sys.last_exc.__traceback__
else:
sys.last_traceback
sys.last_traceback
except:
messagebox.showerror("No stack trace",
"There is no stack trace yet.\n"
"(sys.last_exc and sys.last_traceback are not defined)",
"(sys.last_traceback is not defined)",
parent=self.text)
return
from idlelib.stackviewer import StackBrowser
Expand Down
2 changes: 0 additions & 2 deletions Lib/idlelib/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,6 @@ def print_exception():
efile = sys.stderr
typ, val, tb = excinfo = sys.exc_info()
sys.last_type, sys.last_value, sys.last_traceback = excinfo
sys.last_exc = val
seen = set()

def print_exc(typ, exc, tb):
Expand Down Expand Up @@ -630,7 +629,6 @@ def stackviewer(self, flist_oid=None):
flist = self.rpchandler.get_remote_proxy(flist_oid)
while tb and tb.tb_frame.f_globals["__name__"] in ["rpc", "run"]:
tb = tb.tb_next
sys.last_exc = val
sys.last_type = typ
sys.last_value = val
item = stackviewer.StackTreeItem(flist, tb)
Expand Down
21 changes: 6 additions & 15 deletions Lib/idlelib/stackviewer.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,7 @@ def __init__(self, flist=None, tb=None):

def get_stack(self, tb):
if tb is None:
if hasattr(sys, 'last_exc'):
tb = sys.last_exc.__traceback__
else:
tb = sys.last_traceback
tb = sys.last_traceback
stack = []
if tb and tb.tb_frame is None:
tb = tb.tb_next
Expand All @@ -40,15 +37,11 @@ def get_stack(self, tb):
return stack

def get_exception(self):
if hasattr(sys, 'last_exc'):
typ = type(sys.last_exc)
value = sys.last_exc
else:
typ = sys.last_type
value = sys.last_value
if hasattr(typ, "__name__"):
typ = typ.__name__
s = str(typ)
type = sys.last_type
value = sys.last_value
if hasattr(type, "__name__"):
type = type.__name__
s = str(type)
if value is not None:
s = s + ": " + str(value)
return s
Expand Down Expand Up @@ -143,15 +136,13 @@ def _stack_viewer(parent): # htest #
except NameError:
exc_type, exc_value, exc_tb = sys.exc_info()
# inject stack trace to sys
sys.last_exc = exc_value
sys.last_type = exc_type
sys.last_value = exc_value
sys.last_traceback = exc_tb

StackBrowser(top, flist=flist, top=top, tb=exc_tb)

# restore sys to original state
del sys.last_exc
del sys.last_type
del sys.last_value
del sys.last_traceback
Expand Down

0 comments on commit 4746094

Please sign in to comment.