Skip to content

Commit 1f964ae

Browse files
committed
fixed misleading error and added __contain__ method in tkinter.Misc
1 parent b3b0d75 commit 1f964ae

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed

Lib/test/test_tkinter/widget_tests.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ def checkParam(self, widget, name, value, *, expected=_sentinel,
6060
t = widget.configure(name)
6161
self.assertEqual(len(t), 5)
6262
self.assertEqual2(t[4], expected, eq=eq)
63+
self.assertEqual(name in widget, True)
64+
self.assertEqual("invalid-option-tkinter" in widget, False)
6365

6466
def checkInvalidParam(self, widget, name, value, errmsg=None):
6567
orig = widget[name]

Lib/tkinter/__init__.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1845,10 +1845,18 @@ def configure(self, cnf=None, **kw):
18451845

18461846
def cget(self, key):
18471847
"""Return the current value of the configuration option."""
1848-
return self.tk.call(self._w, 'cget', '-' + key)
1848+
return self.tk.call(self._w, 'cget', f'-{key}')
18491849

18501850
__getitem__ = cget
18511851

1852+
def __contains__(self, option):
1853+
"""Check if the given option exists in this widget"""
1854+
try:
1855+
self.cget(option)
1856+
return True
1857+
except TclError:
1858+
return False
1859+
18521860
def __setitem__(self, key, value):
18531861
self.configure({key: value})
18541862

@@ -4322,11 +4330,18 @@ def blank(self):
43224330

43234331
def cget(self, option):
43244332
"""Return the value of OPTION."""
4325-
return self.tk.call(self.name, 'cget', '-' + option)
4333+
return self.tk.call(self.name, 'cget', f'-{option}')
43264334
# XXX config
43274335

4328-
def __getitem__(self, key):
4329-
return self.tk.call(self.name, 'cget', '-' + key)
4336+
__getitem__ = cget
4337+
4338+
def __contains__(self, option):
4339+
"""Check if the given option exists in this widget"""
4340+
try:
4341+
self.cget(option)
4342+
return True
4343+
except TclError:
4344+
return False
43304345

43314346
def copy(self, *, from_coords=None, zoom=None, subsample=None):
43324347
"""Return a new PhotoImage with the same image as this widget.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
fixed misleading error and added ``__contain__`` method in ``tkinter.Misc``

0 commit comments

Comments
 (0)