summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/idlelib/News3.txt2
-rw-r--r--Lib/idlelib/debugger.py28
-rw-r--r--Lib/idlelib/debugger_r.py27
-rw-r--r--Lib/idlelib/debugobj.py20
-rw-r--r--Lib/idlelib/idle_test/test_calltip.py1
-rw-r--r--Lib/idlelib/rpc.py4
-rw-r--r--Lib/idlelib/stackviewer.py4
7 files changed, 44 insertions, 42 deletions
diff --git a/Lib/idlelib/News3.txt b/Lib/idlelib/News3.txt
index efb8d00..8d04ff3 100644
--- a/Lib/idlelib/News3.txt
+++ b/Lib/idlelib/News3.txt
@@ -4,6 +4,8 @@ Released after 2023-10-02
=========================
+gh-96905: In idlelib code, stop redefining built-ins 'dict' and 'object'.
+
gh-72284: Improve the lists of features, editor key bindings,
and shell key bingings in the IDLE doc.
diff --git a/Lib/idlelib/debugger.py b/Lib/idlelib/debugger.py
index f487b4c..d90dbcd 100644
--- a/Lib/idlelib/debugger.py
+++ b/Lib/idlelib/debugger.py
@@ -508,11 +508,11 @@ class StackViewer(ScrolledList):
class NamespaceViewer:
"Global/local namespace viewer for debugger GUI."
- def __init__(self, master, title, dict=None):
+ def __init__(self, master, title, odict=None): # XXX odict never passed.
width = 0
height = 40
- if dict:
- height = 20*len(dict) # XXX 20 == observed height of Entry widget
+ if odict:
+ height = 20*len(odict) # XXX 20 == observed height of Entry widget
self.master = master
self.title = title
import reprlib
@@ -533,24 +533,24 @@ class NamespaceViewer:
canvas["yscrollcommand"] = vbar.set
self.subframe = subframe = Frame(canvas)
self.sfid = canvas.create_window(0, 0, window=subframe, anchor="nw")
- self.load_dict(dict)
+ self.load_dict(odict)
- dict = -1
+ prev_odict = -1 # Needed for initial comparison below.
- def load_dict(self, dict, force=0, rpc_client=None):
- if dict is self.dict and not force:
+ def load_dict(self, odict, force=0, rpc_client=None):
+ if odict is self.prev_odict and not force:
return
subframe = self.subframe
frame = self.frame
for c in list(subframe.children.values()):
c.destroy()
- self.dict = None
- if not dict:
+ self.prev_odict = None
+ if not odict:
l = Label(subframe, text="None")
l.grid(row=0, column=0)
else:
#names = sorted(dict)
- ###
+ #
# Because of (temporary) limitations on the dict_keys type (not yet
# public or pickleable), have the subprocess to send a list of
# keys, not a dict_keys object. sorted() will take a dict_keys
@@ -560,12 +560,12 @@ class NamespaceViewer:
# interpreter gets into a loop requesting non-existing dict[0],
# dict[1], dict[2], etc from the debugger_r.DictProxy.
# TODO recheck above; see debugger_r 159ff, debugobj 60.
- keys_list = dict.keys()
+ keys_list = odict.keys()
names = sorted(keys_list)
- ###
+
row = 0
for name in names:
- value = dict[name]
+ value = odict[name]
svalue = self.repr.repr(value) # repr(value)
# Strip extra quotes caused by calling repr on the (already)
# repr'd value sent across the RPC interface:
@@ -577,7 +577,7 @@ class NamespaceViewer:
l.insert(0, svalue)
l.grid(row=row, column=1, sticky="nw")
row = row+1
- self.dict = dict
+ self.prev_odict = odict
# XXX Could we use a <Configure> callback for the following?
subframe.update_idletasks() # Alas!
width = subframe.winfo_reqwidth()
diff --git a/Lib/idlelib/debugger_r.py b/Lib/idlelib/debugger_r.py
index 2620443..ad3355d 100644
--- a/Lib/idlelib/debugger_r.py
+++ b/Lib/idlelib/debugger_r.py
@@ -125,16 +125,16 @@ class IdbAdapter:
def frame_globals(self, fid):
frame = frametable[fid]
- dict = frame.f_globals
- did = id(dict)
- dicttable[did] = dict
+ gdict = frame.f_globals
+ did = id(gdict)
+ dicttable[did] = gdict
return did
def frame_locals(self, fid):
frame = frametable[fid]
- dict = frame.f_locals
- did = id(dict)
- dicttable[did] = dict
+ ldict = frame.f_locals
+ did = id(ldict)
+ dicttable[did] = ldict
return did
def frame_code(self, fid):
@@ -158,20 +158,17 @@ class IdbAdapter:
def dict_keys(self, did):
raise NotImplementedError("dict_keys not public or pickleable")
-## dict = dicttable[did]
-## return dict.keys()
+## return dicttable[did].keys()
- ### Needed until dict_keys is type is finished and pickealable.
+ ### Needed until dict_keys type is finished and pickleable.
+ # xxx finished. pickleable?
### Will probably need to extend rpc.py:SocketIO._proxify at that time.
def dict_keys_list(self, did):
- dict = dicttable[did]
- return list(dict.keys())
+ return list(dicttable[did].keys())
def dict_item(self, did, key):
- dict = dicttable[did]
- value = dict[key]
- value = reprlib.repr(value) ### can't pickle module 'builtins'
- return value
+ value = dicttable[did][key]
+ return reprlib.repr(value) # Can't pickle module 'builtins'.
#----------end class IdbAdapter----------
diff --git a/Lib/idlelib/debugobj.py b/Lib/idlelib/debugobj.py
index 156377f..fb448ec 100644
--- a/Lib/idlelib/debugobj.py
+++ b/Lib/idlelib/debugobj.py
@@ -1,3 +1,5 @@
+"""Define tree items for debug stackviewer, which is only user.
+"""
# XXX TO DO:
# - popup menu
# - support partial or total redisplay
@@ -17,9 +19,9 @@ myrepr.maxstring = 100
myrepr.maxother = 100
class ObjectTreeItem(TreeItem):
- def __init__(self, labeltext, object, setfunction=None):
+ def __init__(self, labeltext, object_, setfunction=None):
self.labeltext = labeltext
- self.object = object
+ self.object = object_
self.setfunction = setfunction
def GetLabelText(self):
return self.labeltext
@@ -51,8 +53,8 @@ class ObjectTreeItem(TreeItem):
item = make_objecttreeitem(
str(key) + " =",
value,
- lambda value, key=key, object=self.object:
- setattr(object, key, value))
+ lambda value, key=key, object_=self.object:
+ setattr(object_, key, value))
sublist.append(item)
return sublist
@@ -85,8 +87,8 @@ class SequenceTreeItem(ObjectTreeItem):
value = self.object[key]
except KeyError:
continue
- def setfunction(value, key=key, object=self.object):
- object[key] = value
+ def setfunction(value, key=key, object_=self.object):
+ object_[key] = value
item = make_objecttreeitem(f"{key!r}:", value, setfunction)
sublist.append(item)
return sublist
@@ -111,13 +113,13 @@ dispatch = {
type: ClassTreeItem,
}
-def make_objecttreeitem(labeltext, object, setfunction=None):
- t = type(object)
+def make_objecttreeitem(labeltext, object_, setfunction=None):
+ t = type(object_)
if t in dispatch:
c = dispatch[t]
else:
c = ObjectTreeItem
- return c(labeltext, object, setfunction)
+ return c(labeltext, object_, setfunction)
def _debug_object_browser(parent): # htest #
diff --git a/Lib/idlelib/idle_test/test_calltip.py b/Lib/idlelib/idle_test/test_calltip.py
index 15e1ff3..28c196a 100644
--- a/Lib/idlelib/idle_test/test_calltip.py
+++ b/Lib/idlelib/idle_test/test_calltip.py
@@ -79,6 +79,7 @@ class Get_argspecTest(unittest.TestCase):
tiptest(list.append, '(self, object, /)' + append_doc)
tiptest(List.append, '(self, object, /)' + append_doc)
tiptest([].append, '(object, /)' + append_doc)
+ # The use of 'object' above matches the signature text.
tiptest(types.MethodType,
'(function, instance, /)\n'
diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py
index b08b80c..3f0b223 100644
--- a/Lib/idlelib/rpc.py
+++ b/Lib/idlelib/rpc.py
@@ -158,8 +158,8 @@ class SocketIO:
s = s + " " + str(a)
print(s, file=sys.__stderr__)
- def register(self, oid, object):
- self.objtable[oid] = object
+ def register(self, oid, object_):
+ self.objtable[oid] = object_
def unregister(self, oid):
try:
diff --git a/Lib/idlelib/stackviewer.py b/Lib/idlelib/stackviewer.py
index 977c56e..95042d4 100644
--- a/Lib/idlelib/stackviewer.py
+++ b/Lib/idlelib/stackviewer.py
@@ -106,8 +106,8 @@ class VariablesTreeItem(ObjectTreeItem):
value = self.object[key]
except KeyError:
continue
- def setfunction(value, key=key, object=self.object):
- object[key] = value
+ def setfunction(value, key=key, object_=self.object):
+ object_[key] = value
item = make_objecttreeitem(key + " =", value, setfunction)
sublist.append(item)
return sublist