summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorTian Gao <gaogaotiantian@hotmail.com>2024-09-26 16:35:13 (GMT)
committerGitHub <noreply@github.com>2024-09-26 16:35:13 (GMT)
commit986a4e1b6fcae7fe7a1d0a26aea446107dd58dd2 (patch)
tree3fb4051573758d63b50f6680b386ee91ee0a2fce /Lib
parentd7248cdbc32ffb401a27499223b7f0c2f80614f8 (diff)
downloadcpython-986a4e1b6fcae7fe7a1d0a26aea446107dd58dd2.zip
cpython-986a4e1b6fcae7fe7a1d0a26aea446107dd58dd2.tar.gz
cpython-986a4e1b6fcae7fe7a1d0a26aea446107dd58dd2.tar.bz2
Cleanup unnecessary curframe_locals usage (#124369)
Diffstat (limited to 'Lib')
-rw-r--r--Lib/pdb.py30
1 files changed, 11 insertions, 19 deletions
diff --git a/Lib/pdb.py b/Lib/pdb.py
index 443160e..2827016 100644
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -403,13 +403,6 @@ class Pdb(bdb.Bdb, cmd.Cmd):
self.tb_lineno[tb.tb_frame] = lineno
tb = tb.tb_next
self.curframe = self.stack[self.curindex][0]
- # The f_locals dictionary used to be updated from the actual frame
- # locals whenever the .f_locals accessor was called, so it was
- # cached here to ensure that modifications were not overwritten. While
- # the caching is no longer required now that f_locals is a direct proxy
- # on optimized frames, it's also harmless, so the code structure has
- # been left unchanged.
- self.curframe_locals = self.curframe.f_locals
self.set_convenience_variable(self.curframe, '_frame', self.curframe)
if self._chained_exceptions:
@@ -732,7 +725,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
def default(self, line):
if line[:1] == '!': line = line[1:].strip()
- locals = self.curframe_locals
+ locals = self.curframe.f_locals
globals = self.curframe.f_globals
try:
buffer = line
@@ -960,7 +953,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
# Collect globals and locals. It is usually not really sensible to also
# complete builtins, and they clutter the namespace quite heavily, so we
# leave them out.
- ns = {**self.curframe.f_globals, **self.curframe_locals}
+ ns = {**self.curframe.f_globals, **self.curframe.f_locals}
if text.startswith("$"):
# Complete convenience variables
conv_vars = self.curframe.f_globals.get('__pdb_convenience_variables', {})
@@ -991,7 +984,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
# Use rlcompleter to do the completion
state = 0
matches = []
- completer = Completer(self.curframe.f_globals | self.curframe_locals)
+ completer = Completer(self.curframe.f_globals | self.curframe.f_locals)
while (match := completer.complete(text, state)) is not None:
matches.append(match)
state += 1
@@ -1153,7 +1146,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
try:
func = eval(arg,
self.curframe.f_globals,
- self.curframe_locals)
+ self.curframe.f_locals)
except:
func = arg
try:
@@ -1458,7 +1451,6 @@ class Pdb(bdb.Bdb, cmd.Cmd):
assert 0 <= number < len(self.stack)
self.curindex = number
self.curframe = self.stack[self.curindex][0]
- self.curframe_locals = self.curframe.f_locals
self.set_convenience_variable(self.curframe, '_frame', self.curframe)
self.print_stack_entry(self.stack[self.curindex])
self.lineno = None
@@ -1704,7 +1696,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
"""
sys.settrace(None)
globals = self.curframe.f_globals
- locals = self.curframe_locals
+ locals = self.curframe.f_locals
p = Pdb(self.completekey, self.stdin, self.stdout)
p.prompt = "(%s) " % self.prompt.strip()
self.message("ENTERING RECURSIVE DEBUGGER")
@@ -1749,7 +1741,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
self._print_invalid_arg(arg)
return
co = self.curframe.f_code
- dict = self.curframe_locals
+ dict = self.curframe.f_locals
n = co.co_argcount + co.co_kwonlyargcount
if co.co_flags & inspect.CO_VARARGS: n = n+1
if co.co_flags & inspect.CO_VARKEYWORDS: n = n+1
@@ -1769,15 +1761,15 @@ class Pdb(bdb.Bdb, cmd.Cmd):
if arg:
self._print_invalid_arg(arg)
return
- if '__return__' in self.curframe_locals:
- self.message(self._safe_repr(self.curframe_locals['__return__'], "retval"))
+ if '__return__' in self.curframe.f_locals:
+ self.message(self._safe_repr(self.curframe.f_locals['__return__'], "retval"))
else:
self.error('Not yet returned!')
do_rv = do_retval
def _getval(self, arg):
try:
- return eval(arg, self.curframe.f_globals, self.curframe_locals)
+ return eval(arg, self.curframe.f_globals, self.curframe.f_locals)
except:
self._error_exc()
raise
@@ -1785,7 +1777,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
def _getval_except(self, arg, frame=None):
try:
if frame is None:
- return eval(arg, self.curframe.f_globals, self.curframe_locals)
+ return eval(arg, self.curframe.f_globals, self.curframe.f_locals)
else:
return eval(arg, frame.f_globals, frame.f_locals)
except BaseException as exc:
@@ -2029,7 +2021,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
Start an interactive interpreter whose global namespace
contains all the (global and local) names found in the current scope.
"""
- ns = {**self.curframe.f_globals, **self.curframe_locals}
+ ns = {**self.curframe.f_globals, **self.curframe.f_locals}
console = _PdbInteractiveConsole(ns, message=self.message)
console.interact(banner="*pdb interact start*",
exitmsg="*exit from pdb interact command*")